2

関数 store.add(a : any) を含む Ext JS 用の TS 定義ファイルがあります (多くのオーバーロードがあるため、これは d.ts ファイルを簡素化するためだと思います)。Person インターフェイスを実装するリテラル オブジェクトを渡したい:

interface Person
{
  name: string;
  age: number
}

store.add(<Person>{ name: "Sam" });

これによりインテリセンスが得られますが、残念ながら、不足しているフィールドを検出せずに、リテラルを Person に強制するだけです。これは私が望むように動作します:

var p : Person = { name: "Sam" }; // detects a missing field
store.add(p);

しかし、別の変数なしでこれを行う方法はありますか?

これは「固定された」定義ファイルで解決できることはわかっていますが、多くの Javascript ライブラリにはオーバーロードが多すぎてこれを許可できないと思います。関数定義を動的にオーバーロードする方法がほとんど必要です..! ジェネリックはここで役立ちますか?

4

1 に答える 1