2017-02-21 50 views
0

我想與作爲最小的性能需要blah 通過實例創建類型Foo創建具有一組屬性的最小一類

interface Foo { 
    blah: string; 
} 

f: Foo = {blah: "lol"} 

我想雖然是一個錯誤是,如果提及財產blah不是 規定,也未提及一個錯誤,如果一個Fooblah

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

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

所以送更多的屬性嗯,它具有我在界面中提到的屬性,作爲最小的一組屬性。

我該如何做到這一點(它不適用於我的Foo接口,如上所述)。

回答

2

這是否會做:

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'實例。由於它們不是事先知道的,你需要使用索引。 –