有些时候,我们需要做一些“自己比编译器更清楚的知道自己在做什么”,这个时候就用到断言,告诉编译器:没错,就是这样的,就是要这么干。编译器也就假设:嗯,这个程序员已经进行了相关检查,不会有事的。
类型断言只能够「欺骗」TypeScript 编译器,无法避免运行时的错误。
语法: 值 as 类型 或者 <类型>值
// 类型断言有两种形式。 其一是“尖括号”语法:
letsomeValue:any="this is a string";
letstrLength:number= (<string>someValue).length;//断言写法
letfruit:Array<string|number>= ['apple','banana','pear',20];//数组写法
// 另一个为as语法:
letsomeValue1:any="this is a string";
letstrLength2:number= (someValueasstring).length;//将someValue当作一个字符串进行使用
// someValue1.length是any类型得
// strLength2.length是number类型得
// 类型断言不是类型转换,断言成一个联合类型中不存在的类型是不允许的。
// 网络请求可以使用
// async function fn():any {
// let res=await axios("/info")
// return res.data
// }
// let re=fn()
// 因为不确定axios请求下来的数据是什莫类型得,所以通常把它的返回值设置成any类型的
版权声明:本文为cjx177187原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。