2017-02-21 8 views
0

私は、最小限のプロパティはインスタンスによってblah を必要に応じてタイプFooを作成したいと思います:どのような私も欲しいプロパティの最小セットを持つタイプを作成すると、

interface Foo { 
    blah: string; 
} 

f: Foo = {blah: "lol"} 

、エラーがあれば言及されていることですプロパティblahではありません 指定もFooがSにそうblah

f: Foo = {boo: "lol"} // property blah is missing 

f: Foo = {blah: "lol", boo: "lol"} // this is fine 

よりも多くの性質を持っている場合は、エラーが言及されていないことそれは私のインターフェースで言及しているプロパティを最低限のプロパティとして持っています。

これを実現するには(上記のように私のFooインターフェイスでは動作しません)。

答えて

2

は、このDOはウィル:私はこの権利を得た場合

interface Foo { 
    blah: string; 
    [name: string]: string; 
} 

let f1: Foo = {boo: "lol"} // error 
let f2: Foo = {blah: "lol", boo: "lol"} // fine 
+0

だから、あなたは文字列でオブジェクトのインデックスを作成することは基本的に – Scipion

+0

がはい許可されていることを指定します。なぜなら、 'blah'以外の' Foo'インスタンスに対して、(未知の)プロパティがたくさんあるからです。彼らは事前に知られていないので、あなたはインデックスを使用する必要があります。 –

関連する問題