0%

typescript-type-assertion

今天做Code Review的时候看到如下一行代码,之前没有见过这种写法,查了一下资料,发现这是TypeScript中的类型断言。

1
const myCanvas = <HTMLCanvasElement>document.getElementById("main_canvas");

其实类型断言我也之前也用过,不过用的是as关键字,如下:

1
const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;

这两者效果一样。TypeScript中的类型断言有两种写法,一种是<Type>,另一种是as Type。这两种写法是等价的,但是在React中,<Type>会和JSX的语法冲突,所以推荐使用as Type的写法。