一 类型
一 安装包
npm install typescript -g
安装完后tsc -V查看版本号即安装完成
nod环境中执行 ts
npm i @types/node --save-dev (node环境支持的依赖必装
npm i ts-node --g
输入ts-node index.ts即可执行index.ts 文件
二 基础类型
- string
- boolean
- number
- undefinde
- null
- viod
- any
- unknow
void类型
let u: void = undefined; let v: void = null;
void除了可以赋值为undefined/null,还可以表示没有返回值的函数:
如果你配置了tsconfig.json 开启了严格模式,则
let a:void = null会报错。如下:
{ "compilerOptions":{ "strict": true } }
any unknow
-
1.顶级类型 any unknow
-
2.Object
-
3.Number Boolean ...
-
4 number..
-
5 1 false..
-
6 never
-
区别1: unknown可赋值对象只有unknown 和 any,any可以赋值给任意对象
let unknown :unknown = 123;
let any:any = 456;
any=unknown;
console.log('any',any);
输出--->123
- 区别2:
如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj:any = {b:1}
obj.a
如果是unknow 是不能调用属性和方法
let obj:unknown = {b:1,ccc:():number=>213}
obj.b
obj.ccc()
二 接口和对象类型
Object object 和 {}
let a: Object = 1; //大写Object
let c: Object = "str";
let d: Object = true;
let e: object = [111]//小写object只引用类型,不支持原始类型。一般常用语泛型约束
let f :{}=1243;//相当于 new Object 和大写Object一样
数组类型
let arr: number[] = [12, 2];
let arr2: boolean[] = [true, false];
let arr1 :any[]=[1,"1",true]
// 数组泛型
let arr3: Array<string> = ["ABC", "EFG"];
//二维数组
let arr4:number[][]=[[1,2],[3,5]];
// 用接口表示数组 一般用来描述类数组 只要索引的类型是数字时,那么值的类型必须是数字。
interface NumberArray {
[index: number]: number;
}
let fibonacci: NumberArray = [1, 1, 2, 3, 5];
接口
在typescript中,我们定义对象的方式要用关键字interface(接口),我的理解是使用interface来定义一种约束,让数据的结构满足约束的格式。定义方式如下:
- 使用接口约束的时候不能多一个属性也不能少一个属性, 必须与接口保持一致
- 重名interface 可以合并
- 继承
- 可选属性 使用?操作符
- 任意属性
- 只读属性
任意类型
interface Person {
name: string,
age: number,
[propName: string]: any;
}
const person: Person = {
name: "mary",
age: 19,
aaaa: "aaaa"
}
只读属性,比如一些id 属性啊,等等
使用interface定义函数
interface Fu{
(name:string):number[],
}
const fu:Fu = function(name:string){
return [1]
}
函数
- 函数的可选参数
- 函数参数的默认值
- 接口定义函数
- 定义剩余参数
- 函数重载
重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
如果参数类型不同,则参数类型应设置为 any。
参数数量不同你可以将不同的参数设置为可选
function fn(params: number): void
function fn(params: string, params2: number): void
function fn(params: any, params2?: any): void {
console.log(params)
console.log(params2)
}
fn(123)
fn('123',456)
ps 参考学习 csdn 作者:小满zs