Typescript'不是模块'错误

时间:2016-10-28 09:45:52

标签: javascript angular typescript

我有一个Angular2项目,我需要导入一个javascript文件,以便在我的打字稿中使用。

我在app / js / d3gantt.js中有一个javascript文件,其中包含gantt = function()的单个函数。

gantt = function() {
    //Does lots of stuff
    return gantt;
};

然后我在同一文件夹中有一个名为d3gannt.d.ts的定义文件,如下所示:

declare module 'd3Gantt' {
    export module d3Gantt {
        export function gantt(): any;
    }
}

然后我在我的组件中引用它作为 import * as d3Gantt from '../app/js/d3gantt';

但是,我收到错误消息,指出File 'c:/Projects/RepackLog/RepackLog/RepackLog/app/js/d3gantt.d.ts' is not a module

我是否遗漏了正确拾取文件所需的内容?

谢谢,

2 个答案:

答案 0 :(得分:2)

正如上面其中一条评论中提到的@FabioAntunes,你只需要在你的d3gantt.js文件中自行导出int[]。 确切的语法是

gantt

无需在其他任何地方声明。 有关导出模块的进一步说明,请参阅此文章(Typescript es6 import module "File is not a module error")。

答案 1 :(得分:1)

声明模块如下:

declare module 'd3Gantt' {
  export function gantt(): any;    
}

然后将模块导入为:import * from 'path to your module file'import * as d3 from 'path to your module file'