「Three of a Crime」という単純なロジック ゲームを TypeScript で作成しています。
TypeScript で型付き配列を事前に割り当てようとすると、次のようなことを試みました。
var arr = Criminal[];
「式項の形式を確認してください」というエラーが発生しました。
これもやってみた
var arr : Criminal = [];
これにより、「[]を「犯罪者」に変換できません
これを行う「TypeScript」の方法は何ですか?
「Three of a Crime」という単純なロジック ゲームを TypeScript で作成しています。
TypeScript で型付き配列を事前に割り当てようとすると、次のようなことを試みました。
var arr = Criminal[];
「式項の形式を確認してください」というエラーが発生しました。
これもやってみた
var arr : Criminal = [];
これにより、「[]を「犯罪者」に変換できません
これを行う「TypeScript」の方法は何ですか?
TypeScript で型指定された配列を正しく事前に割り当てるという問題は、配列リテラルの構文が原因でやや不明瞭だったため、最初に考えたほど直感的ではありませんでした。
正しい方法は
var arr : Criminal[] = [];
これにより、変数「arr」に格納された、正しく型付けされた空の配列が得られます
これが他の人に役立つことを願っています!
これは古い質問であることは知っていますが、最近、特定の型の空の配列を返さなければならなかったため、この方法では解決できない同様の問題に直面しました。
私が持っていた
return [];
タイプはどこ[]にありましたかCriminal[]。
どちらreturn: Criminal[] [];もreturn []: Criminal[];私のために働いていませんでした。
一見すると、返す直前に型付き変数を作成することで解決しましたが (JavaScript エンジンがどのように機能するかわかりません)、オーバーヘッドが発生する可能性があり、読みにくくなります。
完全を期すために、この解決策も回答で報告します。
let temp: Criminal[] = [];
return temp;
最終的に TypeScript の型キャストを見つけたので、より簡潔で読みやすい (そしておそらく効率的な) 方法で問題を解決できました。
return <Criminal[]>[];
これが将来の読者に役立つことを願っています!