2016-05-27 18 views
0

Hey Ich habe ein Objekt wie:Extract Felder aus Objektklasse in Typoskript passen

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

und meine Klasse ist definiert wie folgt:

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

ist es eine Möglichkeit, foo zu instanziiert Basis auf o, durch Extrahieren der Felder foo und blah (aber nicht foo2). Ich meine, ich weiß, dass ich dafür Funktionen schreiben könnte, aber ich habe mich gefragt, ob das "automatisch" machbar ist.

Antwort

0

Ich denke, das Beste, was Sie tun können, so etwas wie dieses:

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; 
    } 
} 

Wir sind destructuring das Objekt, dann seine einzelnen Felder verwenden, die aufgrund der FooBlah Typdeklaration ihre Typinformationen zu halten.

Verwandte Themen