如何在同名的另一个命名空间中引用typescript中的browser global

时间:2016-01-10 07:12:45

标签: typescript

我正在学习TypeScript。我想知道如何在另一个名为Math的命名空间中引用浏览器全局Math命名空间,如下所示:

namespace THREE {
    namespace Math {
        export function polar(...) {
            ...
            Math.acos(...) // How do I refer to global Math here?
            ...
        }
    }
}

2 个答案:

答案 0 :(得分:4)

您可以通过扩展类型Window然后使用window.Math.acos

来实现
interface Window {
    Math: typeof Math;
}

namespace THREE {
    namespace Math {
        export function polar(...) {
            window.Math.acos(...)
        }
    }
}

答案 1 :(得分:0)

达林的答案。但是,我还建议不要为了代码的可读性而将命名空间命名为“Math”。很容易得到你自己的“数学”实现和window.Math库混合。