联合类型
- 取值可以为多种类型中的一个
function func(str: number | string):void{
}
类型断言
- 当变量需要调用某属性的时候,有不确定当前的类型是什么,可以使用类型断言;
类型断言的两种方式:
1,<类型> 变量名;
2,值 as 类型;
function getString(str: number | string): string{
// 判断str是否是string类型时,通过.length的方式;
// 但如果是number类型的时候str.length这种方式就会报错;
// 所以通过类型断言,如果是string类型的话.....
if((<string>str).length){
// 相当于直接把str变成 string 类型,然后直接调用.length属性
return (str as string).length
} else {
....
}
}
类型推断
- 没有明确的指定类型的情况下推断出一个类型;
let isStr; // any
isStr = 123;
isStr = '字符串';
console.log(isStr); // ‘字符串’