2017-10-24 8 views
0

私はかなり簡単にしようとしています。型付きオブジェクトを関数に渡し、既知のキーで補い、その2つを交差する型を返します。普及した演算子を使った入力文字の置換

Spread operator error

私は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 

道のほとんどを得るように思われますオブジェクトである?インデックス付きのインターフェイスを作成して拡張しようとしましたが、同じエラーが発生します。

+0

@jonrsharpe - それを試みました、同じエラー。 'T extends object'と' T extends {} 'と同じです。 –

+0

これには未解決の問題があるようです。 https://github.com/Microsoft/TypeScript/pull/13288。その間に「...どんなものでも入​​力」が働きます。 – jonrsharpe

答えて

関連する問題