TypeScript中的类型断言运算符是什么?

时间:2013-10-19 01:52:29

标签: typescript

规范没有说明类型断言运算符在TypeScript中可能有用的地方。我的代码中不需要它。所以我很好奇它应该解决什么样的问题。有什么想法吗?

2 个答案:

答案 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文件,如果它找到任何类型断言参数的意外输入类型,它将引发错误。希望能回答你的问题。