関数 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 ライブラリにはオーバーロードが多すぎてこれを許可できないと思います。関数定義を動的にオーバーロードする方法がほとんど必要です..! ジェネリックはここで役立ちますか?