TypeScript 2.1 接口(interface)与 import from 合并

标签 typescript export declaration

我有一个 Window 界面的扩展,看起来像这样:

import IStuff from "Stuff/IStuff";

interface Window {
  Stuff: IStuff;
}

export default Window;

我想通过像这样导入上面的文件在不同的文件中使用 Stuff 扩展:

import Window from WindowExtension;

class StuffApp {

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

  }

}

编译器失败并显示“属性‘Stuff’在类型‘Window’上不存在;我做错了什么?此外,能够以某种方式从其他项目使用此扩展非常重要。

谢谢大家!

最佳答案

下面的代码没有扩展全局窗口

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();

  }

}

关于TypeScript 2.1 接口(interface)与 import from 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42552754/

相关文章:

c#变量使用

typescript - 如何在 WebStorm/IntelliJ 中使用 ts-node 导入项目库来运行 TypeScript 临时文件?

oracle - SQOOP输出文件大小不均匀

TypeScript 函数箭头表达式返回对象

javascript - jQuery 数据表将数据导出到 Excel

c# - 使用 OxyPlot 从 PlotModel 渲染 png 图像

c - C 中 char 指针的行为

c++ - 具有结构数据类型的链表

javascript - 解释已编译的 TypeScript 命名空间(命名空间的内部工作)

javascript - 类型错误 : Cannot read property 'currentQuestions' of undefined in TypeScript