在typescript中添加属性到javascript对象没有错误

时间:2016-07-28 08:23:55

标签: javascript typescript

我发现this文章非常有趣,但当我尝试扩展像window这样的全局变量时,它对我没有帮助。

Test.ts

window.test = {}; //ERROR: Property 'test' does not exist on type 'Window'.

(function (test)
{
//do stuff
} (window.test)); //Build: Property 'test' does not exist on type 'Window'

错误讯息:

  

错误:'Window'类型中不存在属性'test'。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

它被称为Declaration Merging

interface Window {
    test(): void;
}

window.test = function() {
    // do what ever
}

code in playground

如您所见,您需要在Window接口中声明新方法,然后在添加实际实现时编译器不会抱怨。