嘿,我有一个像这样的对象:
let o = {"foo":"blah", "blah": "foo", "foo2":"blah2"}
我的课程定义如下:
class Foo {
constructor(public foo: string, blah: string) {}
}
是否可以通过提取字段foo
和blah
(但不是foo2
)来基于o实例化foo。我的意思是,我知道我可以编写这样的功能,但我想知道它是否可以“自动”?
答案 0 :(得分: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
类型声明而保留其类型信息。