mk.*_*mk. 104 casting typescript
TypeScript规范调用类型断言之间有什么区别:
var circle = <Circle> createShape("circle");
Run Code Online (Sandbox Code Playgroud)
而较新的 as运营商:
var circle = createShape("circle") as Circle;
Run Code Online (Sandbox Code Playgroud)
这两者通常用于编译时转换?
Dav*_*ret 130
不同之处在于它as Circle适用于TSX文件,但<Circle>与JSX语法冲突.as因此而被引入.
例如,.tsx文件中的以下代码:
var circle = <Circle> createShape("circle");
Run Code Online (Sandbox Code Playgroud)
将导致以下错误:
错误TS17002:'Circle'的预期相应JSX结束标记.
但是,as Circle工作得很好.
as Circle从现在开始使用.这是推荐的语法.
Mar*_*cka 29
来自Wiki页面:"TypeScript [1.6]中的新功能":
新的
.tsx文件扩展名和as操作符TypeScript 1.6引入了新的
.tsx文件扩展名.这个扩展做了两件事:它在TypeScript文件中启用JSX,它使newas运算符成为强制转换的方式(消除JSX表达式和TypeScript前缀强制转换操作符之间的任何歧义).例如:Run Code Online (Sandbox Code Playgroud)var x = <any> foo; // is equivalent to: var x = foo as any;
| 归档时间: |
|
| 查看次数: |
28720 次 |
| 最近记录: |