打字稿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();
}
}