TypeScript规范调用类型断言之间有什么区别:
var circle = <Circle> createShape("circle");
newer as
运算符:
var circle = createShape("circle") as Circle;
这两者通常用于编译时转换吗?
答案 0 :(得分:112)
不同之处在于as Circle
在TSX文件中有效,但<Circle>
与JSX语法冲突。出于这个原因引入了as
。
例如,.tsx
文件中的以下代码:
var circle = <Circle> createShape("circle");
将导致以下错误:
错误TS17002:'Circle'的预期相应JSX结束标记。
但是,as Circle
可以正常使用。
从现在开始使用as Circle
。这是https://developers.google.com/protocol-buffers/docs/reference/python/google.protobuf.reflection-module语法。
答案 1 :(得分:25)
来自Wiki page:&#34; TypeScript [1.6]&#34;中的新功能:
新的
void method2() { try { System.out.println("1"); System.exit(0); } finally { System.out.println("3"); } }
文件扩展名和.tsx
运算符TypeScript 1.6引入了新的
as
文件扩展名。这个扩展 做两件事:它在TypeScript文件中启用JSX,以及它 使新的.tsx
运算符成为转换的默认方式(删除任何运算符) JSX表达式和TypeScript前缀强制转换之间的歧义 运营商)。例如:as