获得一个类中的所有静态获得者

比方说,我有这个类(我使用像一个枚举):

class Color { static get Red() { return 0; } static get Black() { return 1; } } 

有没有类似于Object.keys来获得['Red', 'Black']

我正在使用Node.js v6.5.0,这意味着一些function可能会丢失。

       

网上收集的解决方案 "获得一个类中的所有静态获得者"

使用Object.getOwnPropertyDescriptors()并过滤结果以仅包含具有getter的属性:

 class Color { static get Red() { return 0; } static get Black() { return 1; } } const getters = Object.entries(Object.getOwnPropertyDescriptors(Color)) .filter(([key, descriptor]) => typeof descriptor.get === 'function') .map(([key]) => key) console.log(getters)