【发布时间】:2017-11-12 13:18:06
【问题描述】:
我有一个在窗口中创建全局对象的外部 javascript 库。 为了在 typescript 代码中使用这个对象,我创建了一个环境模块文件 (d.ts),它被导入到其他 typescript 文件中。
我面临的问题是编译器说模块文件不是模块
src/App.ts(6,22): error TS2306: File '/Users/user/ts-problems/src/abc.d.ts' is not a module.
我也在使用带有 ts-loader 的 webpack,但单独使用 (tsc) 编译它会得到相同的结果。
这是 abc.d.ts 环境模块文件
declare module "abc" {
export interface Greeter {
sayHello(): void;
}
export var abc: Greeter;
}
这是 App.ts 文件:
import * as abc from "./abc";
class App {
static sayGoodbye() {
console.log("goodbye from App.ts");
}
}
abc.abc.sayHello();
App.sayGoodbye();
测试项目可在https://github.com/daneilsan/ts-module-problem 获得
任何帮助将不胜感激,因为我不知道还能做什么
【问题讨论】:
-
如果文件映射正确,只需执行一次
import './abc'就足够了 -
@toskv 它给了我相同的结果 Module not found: Error: Can't resolve './abc' in '/Users/user/ts-problems/src'
-
您是要从 npm 导入一个名为
abc的包,还是要导入一个 TypeScript 不知道存在于./abc的本地文件? -
abc.d.ts 文件是我项目的一部分并且是本地的。它与 App.ts 位于同一文件夹中
标签: typescript webpack ts-loader