261

「Three of a Crime」という単純なロジック ゲームを TypeScript で作成しています。

TypeScript で型付き配列を事前に割り当てようとすると、次のようなことを試みました。

var arr = Criminal[];

「式項の形式を確認してください」というエラーが発生しました。

これもやってみた

var arr : Criminal = [];

これにより、「[]を「犯罪者」に変換できません

これを行う「TypeScript」の方法は何ですか?

4

6 に答える 6

249

TypeScript で型指定された配列を正しく事前に割り当てるという問題は、配列リテラルの構文が原因でやや不明瞭だったため、最初に考えたほど直感的ではありませんでした。

正しい方法は

var arr : Criminal[] = [];

これにより、変数「arr」に格納された、正しく型付けされた空の配列が得られます

これが他の人に役立つことを願っています!

于 2013-04-05T05:43:23.357 に答える
27

これは古い質問であることは知っていますが、最近、特定の型の空の配列を返さなければならなかったため、この方法では解決できない同様の問題に直面しました。

私が持っていた

return [];

タイプはどこ[]にありましたかCriminal[]

どちらreturn: Criminal[] [];return []: Criminal[];私のために働いていませんでした。

一見すると、返す直前に型付き変数を作成することで解決しましたが (JavaScript エンジンがどのように機能するわかりません)、オーバーヘッドが発生する可能性があり、読みにくくなります。

完全を期すために、この解決策も回答で報告します。

let temp: Criminal[] = [];
return temp;

最終的に TypeScript の型キャストを見つけたので、より簡潔で読みやすい (そしておそらく効率的な) 方法で問題を解決できました。

return <Criminal[]>[];

これが将来の読者に役立つことを願っています!

于 2016-08-09T08:46:15.007 に答える