假设我有
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()));
这就是为什么你得到一个空数组。