类型断言和 TypeScript 中较新的 `as` 运算符之间有什么区别?

问题描述

不同之处在于它as Circle适用于 TSX 文件,但<Circle>与 JSX 语法冲突。as为此而推出。

例如,.tsx文件中的以下代码

var circle = <Circle> createShape("circle");

将导致以下错误

错误 TS17002:“Circle”需要对应的 JSX 结束标记

但是,as Circle会工作得很好。

从现在开始使用as Circle。这是推荐的语法。

解决方法

TypeScript 规范所称的类型断言有什么区别:

var circle = <Circle> createShape("circle");

较新 as的运营商:

var circle = createShape("circle") as Circle;

这两者通常用于编译时转换?