我想扩展一个声明名为Base
的变量的现有模块Math
。我还想在模块的扩展中使用标准的JS Math
对象。这可能吗?
module Base {
export var Math: number;
}
// Extend module:
module Base {
function f () {
var y = Math.PI // how to refer to JS Math object here?
}
}
(请假设定义Base
的{{1}}片段是第三方库,因此我无法将Math
重命名为不会发生冲突的内容。)
答案 0 :(得分:4)
只需将其存储在变量中:
module Base {
export var Math: number;
}
// Extend module:
var TheMath = Math; // Create a variable
module Base {
function f () {
var y = TheMath.PI // now use it
}
}
答案 1 :(得分:1)
你做不到。 通过在模块上声明一个Math变量(您使用相同的模块),您可以用自己的方法覆盖原始的JS Math对象。
我会将其重命名为MyMath或其他一些有意义的名称,使用“Math”名称可能会让其他开发人员与原始的JS Math混淆...