通常这会发生在你清楚地知道一个实体具有比它现有类型更确切的类型。
通过类型断言这种方式可以告诉编译器,“相信我,我知道自己在干什么”。 类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。 它没有运行时的影响,只是在编译阶段起作用
类型断言有两种形式。 一个是“尖括号”语法,另一个为as
语法 ,两种形式是等价的。 至于使用哪个大多数情况下是凭个人喜好
let someValue: any = "this is a string";
// 写法1
let strLength2: number = (someValue as string).length;
// 写法2
let strLength: number = (<string>someValue).length;