2016-05-27 50 views
0

嘿,我有一個對象,如:提取物領域的打字稿匹配類

let o = {"foo":"blah", "blah": "foo", "foo2":"blah2"} 

和我的類定義如下:

class Foo { 
constructor(public foo: string, blah: string) {} 
} 

有沒有辦法來實例化foo的基礎在o上,通過提取字段fooblah(但不是foo2)。我的意思是,我知道我可以編寫這樣做的函數,但我想知道「自動」是否可行?

回答

0

我認爲你能做的最好的是這樣的:

type FooBlah = { foo: string, blah: string } 

let o = { "foo": "blah", "blah": "foo", "foo2": "blah2" } as FooBlah 

class Foo { 
    private foo: string 
    constructor({foo, blah}: FooBlah) { 
    this.foo = foo; 
    } 
} 

我們destructuring對象,然後用它的各個字段,它保持,因爲FooBlah類型聲明他們的類型信息。