TypeScript 内の別のオブジェクトと同じキーを持つオブジェクトですか? 質問する

TypeScript 内の別のオブジェクトと同じキーを持つオブジェクトですか? 質問する

produce次のシグネチャを持つメソッドがあります。

interface ProduceConditions {
    [key: string]: Function|Promise<any>;
}

produce(conditions: ProduceConditions, input: any): Promise<object>|object;

返される(解決された)オブジェクトには、オブジェクトと同じキーが存在しますconditions

ベストアンサー1

質問の内容を正しく理解していれば、入力はいくつかのキーのセットを持つconditionsの実装となりProduceConditions、戻り値 (Promise にラップされているかどうかに関係なく) は同じキーを持ちますが、値はすべて解決されます。

その場合、探している署名は次のようになります。

produce<T extends ProduceConditions, U extends { [key in keyof T]: any }>(conditions: T, input: any): Promise<U> | U

ここでは、入力型がTの定義を満たしProduceConditions、出力型Uが と同じキーを持つという要件を満たす、入力と出力を表す 2 つのジェネリック型を使用しましたT

おすすめ記事