TypeScript:类型断言
什么是类型断言
有些时候,我们需要做一些“自己比编译器更清楚的知道自己在做什么”,这个时候就用到断言,告诉编译器:没错,就是这样的,就是要这么干。编译器也就假设:嗯,这个程序员已经进行了相关检查,不会有事的。
类型断言只能够「欺骗」TypeScript 编译器,无法避免运行时的错误。
语法:
值 as 类型 或者 <类型>值
类型断言有两种形式。 其一是“尖括号”语法:
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
*someValue.length =>any类型
*(someValue as string).length =>number类型
另一个为as
语法:
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
*(re as string[])==>等价<string[]>re
类型断言不是类型转换,断言成一个联合类型中不存在的类型是不允许的。