类型断言
概念
有些时候开发者比TS本身更清楚当前的类型是什么,断言(as)让类型更加精确和具体
基本使用
示例:获取页面中的id为link的a元素,尝试通过点语法访问href属性
const aLink=document.getElementById('link');
大家可以清楚的看到目前aLink
是一个联合类型,但是我们需要的是HTMLElement
类型,此时就可以通过类型断言来指明我们需要的类型,如下
const aLink = document.getElementById('link') as HTMLElement;
注意事项
类型断言只能够「欺骗」
TypeScript
编译器,无法避免运行时的错误,滥用类型断言可能会导致运行时错误
示例
此时编译器并没有报错,却引起了前端页面的错误
function log(foo: string | number) {
console.log((foo as number).toFixed(2));
}
log(100);
log('100');