Never 类型
never类型表示:那些永不存在的值的类型。 例如:never类型是那些总是会【抛出异常】或根本就【不会有返回值的函数表达式】或【箭头函数表达式的返回值类型】 never类型是任何类型的子类型,也可以赋值给任何类型。 然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。 any也不可以赋值给never。 //never类型是那些总是会【抛出异常】 function error(message: string): never { throw new Error(message); }
never 在项目中的运用
interface Info { //当我们不知道这个数组里面是什么类型的时候,我们就可以设置为never类型 like: never[]; age: number; name: string; } let obj: Info = { like: [], age: 18, name:'磅礴' }
类型断言
有时候你会遇到这样的情况,你会比TypeScript更了解某个值的详细信息。 通过类型断言告诉编译器,“相信我,我知道自己在干什么”。 类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用
类型断言的两种方式
类型断言有两种形式。 其一是“尖括号”语法: let someValue: any = "this is a string"; let strLength: number = (<string>someValue).length; 另一个为as语法: let someValue: any = "this is a string"; let strLength: number = (someValue as string).length; 两种形式是等价的。 至于使用哪个大多数情况下是凭个人喜好; 然而,当你在TypeScript里使用JSX时,只有 as语法断言是被允许的。