规范没有说明类型断言运算符在TypeScript中可能有用的地方。我的代码中不需要它。所以我很好奇它应该解决什么样的问题。有什么想法吗?
答案 0 :(得分:19)
它有点像type casting
,但因为它没有运行时支持(仅限编译时断言),TypeScript选择将其称为'Type Assertion'。考虑这个例子:
var element1 = document.getElementById('canvas'); // Determined to be HTMLElement
element1.getContext('2d'); // ERROR as it is HTMLElement
// Determined to be canvas due to your assertion
var element2 = <HTMLCanvasElement>document.getElementById('canvas');
element2.getContext('2d'); // Valid
每当打字稿类型推断会阻止您因不兼容的推断类型而分配内容时,您将需要它。
答案 1 :(得分:0)
我假设你的意思是函数参数之后的: [type]
表示法?它似乎在最终的.js文件中没有区别,但如果你通过编译器运行.ts文件,如果它找到任何类型断言参数的意外输入类型,它将引发错误。希望能回答你的问题。