TypeScript仕様で型アサーションと呼ばれるものに違いはありますか?
var circle = <Circle> createShape("circle");
neweras
演算子:
var circle = createShape("circle") as Circle;
どちらも通常、コンパイル時のキャストに使用されますか?
違いは、as Circle
はTSXファイルで機能しますが、<Circle>
はJSX構文と競合することです。 as
はこの理由で導入されました。
たとえば、.tsx
ファイルの次のコード:
var circle = <Circle> createShape("circle");
次のエラーが発生します。
エラーTS17002:「サークル」に対応するJSX終了タグが必要です。
ただし、as Circle
は正常に機能します。
これからas Circle
を使用してください。 推奨 構文です。
From Wikiページ : "TypeScript [1.6]の新機能":
新しい
.tsx
ファイル拡張子とas
演算子TypeScript 1.6では、新しい
.tsx
ファイル拡張子が導入されています。この拡張機能は2つのことを行います。TypeScriptファイル内でJSXを有効にし、新しいas
演算子をデフォルトのキャスト方法にします(JSX式とTypeScriptプレフィックスキャスト演算子のあいまいさを取り除きます)。例えば:var x = <any> foo; // is equivalent to: var x = foo as any;