类型断言好比其他语言中的类型转换,但是不是真正的类型转换方式,之所以不被称为类型转换,是因为转换通常意味着某种运行时的支持。但是,类型断言纯粹是一个编译时语法,同时,它也是一种为编译器提供关于如何分析代码的方法。
理解:就是让ts编译顺利通过
let someValue: any = 'this is a string';
let strLen: number = (<string>someValue).length;
let someValue: any = 'this is a string';
let strLen: number = (someValue as string).length;
两种形式是等价的,但是如果在ts中使用了jsx语法的话,只能使用 as 语法。
后缀表达式操作符 ! 可以用于断言操作对象是非 null 和非 undefined 类型。具体而言,x! 将从 x 值域中排除 null 和 undefined 。
1)忽略undefined和null类型:
2)函数调用时忽略undefined类型:
3)非空断言只是让ts编译通过,在生成的js代码中,会移除非空断言的相关代码,所以在实际使用的过程中,要特别注意。
生成的js代码: