0
私はかなり簡単にしようとしています。型付きオブジェクトを関数に渡し、既知のキーで補い、その2つを交差する型を返します。普及した演算子を使った入力文字の置換
私はT
を強制するにはどうすればよい:
次のコードでは、しかし、私は...input
スプレッドオペレータに次のエラーを取得する私に
interface Success {
success: boolean
}
interface Named {
name: string
}
type Resolver<T> = Success & T
function test<T>(input: T): Resolver<T> {
return {
success: true,
...input
}
}
const person: Named = { name: 'Bob' };
const res = test<Named>(person);
// `res.success` and `res.name` are inferred
道のほとんどを得るように思われますオブジェクトである?インデックス付きのインターフェイスを作成して拡張しようとしましたが、同じエラーが発生します。
@jonrsharpe - それを試みました、同じエラー。 'T extends object'と' T extends {} 'と同じです。 –
これには未解決の問題があるようです。 https://github.com/Microsoft/TypeScript/pull/13288。その間に「...どんなものでも入力」が働きます。 – jonrsharpe