Module 请参阅从TypeScript模块扩展隐藏全局
我想扩展一个现有模块Module 请参阅从TypeScript模块扩展隐藏全局,module,typescript,Module,Typescript,我想扩展一个现有模块Base,该模块声明一个名为Math的变量。我还想在模块的扩展中使用标准的JSMath对象。这可能吗 module Base { export var Math: number; } // Extend module: module Base { function f () { var y = Math.PI // how to refer to JS Math object here? } } (请假设定义Math的Base片段是第三方库,
Base
,该模块声明一个名为Math
的变量。我还想在模块的扩展中使用标准的JSMath
对象。这可能吗
module Base {
export var Math: number;
}
// Extend module:
module Base {
function f () {
var y = Math.PI // how to refer to JS Math object here?
}
}
(请假设定义Math
的Base
片段是第三方库,因此我无法将Math
重命名为不冲突的内容。)您不能。
通过在模块上声明一个数学变量(您使用的是同一个模块),您可以使用自己的模块覆盖原始JS Math对象
我会将其重命名为MyMath或其他有意义的名称,使用“Math”名称可能会让其他开发人员与原始JS Math混淆 你不能。
通过在模块上声明一个数学变量(您使用的是同一个模块),您可以使用自己的模块覆盖原始JS Math对象
我会将其重命名为MyMath或其他有意义的名称,使用“Math”名称可能会让其他开发人员与原始JS Math混淆 只需将其存储在变量中:
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
}
}
只需将其存储在变量中:
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
}
}
谢谢不幸的是,
Base
是第三方库,其中已经包含名为Math
的变量。相应地澄清了我的问题。因此,我认为这意味着我不能扩展Base
,而必须导入它。谢谢。不幸的是,Base
是第三方库,其中已经包含名为Math
的变量。相应地澄清了我的问题。因此,我认为这意味着我不能扩展Base
,但必须导入它。当然。我忘了TypeScript模块是一流的:-)当然。我忘了TypeScript模块是一流的:-)