【发布时间】:2018-12-16 05:18:20
【问题描述】:
我认为这是最好的方法:
export const stdMarker = '@json-stdio';
export const stdEventName = '@json-stdio-event';
Object.defineProperties(module.exports, {
'stdMarker': {
writable: false
},
'stdEventName': {
writable: false
}
});
这有什么速记吗?如果 TS 提供以下内容会很有趣:
export frozen const stdMarker = '@json-stdio';
export frozen const stdEventName = '@json-stdio-event';
或其他。有没有更好的方法来做到这一点?
【问题讨论】:
-
ES 模块导出在规范中已经是只读的。它们是可写的,只是因为它们在编译时回退到 CJS。做到这一点的“最佳”方法是在准备就绪时使用本机模块,github.com/Microsoft/TypeScript/issues/18442。你为什么需要那样做?描述符会影响模块导出在测试中被监视或存根的方式。
标签: javascript node.js typescript typescript2.0 tsc