ts类型
申明变量如果不指定类型,则TS解析器会主动判断变量类型为any
---unknown类型
let e:known;
e=10;
e="hello";
e=true;
let s:string;
s=e;//则会报错,unknown类型的值不能赋给固定类型的变量
//any类型则能够赋值给任意值;
解决形式如下:
if(typeof e === 'string') {
s=e;
}
或 类型断言,用来通知解析器变量的理论类型
/**
- 语法:
- 变量 as 类型;
- <类型>变量
*/
s=e as string;
s=<string>e;
---void示意空,以函数为例,就示意没有返回值的函数
function ():void {
}
---never示意永远不会返回值,如函数只报错
function () {
throw new Error('报错了');
}
---object/function
---array
//示意字符串数组;
let a:string[];
a = ['a','b','c'];
let f:number[];//示意数值类型数组
等同于let g:Array<number>
---tuple元祖类型
//固定长度的数组
let h: [string,string]
h = ['22','hello'];
---enum枚举类型
`enum Gender{
Male: 0,Female: 1
}
let i:{name:string,gender:Gender};
i={
name:'wang',gender:Gender.Male
};`
非凡表达方式
//& 示意同时;j满足name和age同时满足条件类型
let j: {name: string } & {age: number};
j={name:'hua',age:12};
类型别名
type myType = string;
let a:myType;
type myNumber = 1 | 2 | 3 | 4;
let b:myNumber;