0
特定のインターフェイスを拡張している限り、オブジェクトを受け入れる配列を持つインターフェイスをモデル化したいと思います。私はまだジェネリックスを学んでいるので、私に同行してください。ジェネリックアレイのインターフェイスのモデリング
ここに私の "ベース" のインターフェースです:
export interface IEntry {
sys: {
contentType: {
. . .
}
}
}
と私の拡張インターフェース:
export interface IEntries {
items: IEntry[]; <- doesn't allow for IWorkSample or future interfaces
limit: number;
skip: number;
sys: {
type: string;
};
total: number;
}
私はもちろん行うことができます。
export interface IWorkSample extends IEntry {
fields: {
. . .
}
}
ここアレイを有するインタフェースです:
items: IWorkCategory[] | IWorkSample[];
ですが、タイプを追加しておく必要があります。
にIEntry
のオブジェクトが含まれるように、IEntries
インターフェイスを記述したいと考えています。私はGenerics Documentationを読んでいるが、明らかに不足している。
私はitems: any[]
を使用することができますが、将来的に予想されるオブジェクトのオブジェクトには保証はありません。誰かが意味を成す例で私を助けてくれますか?
'IEntries'はしかし' IEntry'を延長しない... '項目'は' IEntry'を拡張する型の配列です...それとも、私は完全にポイントを逃していますか? – Brandon
正しい。これは上の例が示しているように、 'IEntry'は' IEntry'を拡張するだけで、IEntryは型パラメータ 'T'を拡張しません。 – Saravana
私は理解していると思います。私のコードをリファクタリングしてみましょう。 – Brandon