打字稿2.1接口,拥有自营合并来自

打字稿2.1接口,拥有自营合并来自

问题描述:

我有窗口界面的扩展,看起来是这样的:打字稿2.1接口,拥有自营合并来自

import IStuff from "Stuff/IStuff"; 

interface Window { 
    Stuff: IStuff; 
} 

export default Window; 

我想通过导入上述这样的文件,使用在不同的文件中的东西扩展:

import Window from WindowExtension; 

class StuffApp { 

    public doStuff() { 
    window.Stuff.doStuff(); 

    } 

} 

编译器失败,“财产‘东西’不存在于类型‘窗口’;我在做什么错误的同时,为了能够从其他项目以某种方式使用这个扩展是非常重要的

谢谢,伙计们!

下面的代码不延长全局窗口

import IStuff from "Stuff/IStuff"; 

interface Window { 
    Stuff: IStuff; 
} 

export default Window; 

它实际上是一个出口新窗口界面的文件是一个模块(因为进口的)。更多https://basarat.gitbooks.io/typescript/docs/project/modules.html

适当的修复

import IStuff from "Stuff/IStuff"; 



    interface MyWindow extends Window { 
    Stuff: IStuff; 
    } 


export default (window as MyWindow) 

然后用

import MyWindow from WindowExtension; 

class StuffApp { 

    public doStuff() { 
    MyWindow.Stuff.doStuff(); 

    } 

}