使用TypeScript冻结导出

时间:2018-07-08 08:09:59

标签: javascript node.js typescript typescript2.0 tsc

我认为这是最好的方法:

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';

或其他。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

由于您已经将stdMarkerstdEventName定义为const(并且它们的值是原始的,而不是对象),因此应该具有预期的行为。 在将const导入另一个文件并尝试对其进行修改时,出现错误:

Cannot assign to 'test' because it is not a variable.

您希望冻结出口的行为是什么?在这种情况下,您的defineProperties调用与const类似。