我怎么能得到所有的属性在Typescript类的可选属性



假设我有

class MyType {
property1?: string,
property2?: string
}

,所有属性都是可选的。

我如何得到一个数组的属性名称,如:

["property1", "property2"]

我试过了

console.log(Object.keys(new MyType()))

将返回一个空数组,因为所有属性都是可选的。

编译后,TS编译器将擦除可选属性。参见TypeScript Playground

TS:

class MyType {
property1?: string
property2?: string
}
console.log(Object.keys(new MyType()))

transpiled JS:

"use strict";
class MyType {
}
console.log(Object.keys(new MyType()));

这就是为什么你得到一个空数组。

最新更新