我有一个Angular2项目,我需要在其中输入要在我的 typescript 中使用的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的错误消息

我是否缺少一些必要的东西才能正常拾取我的文件?

谢谢,

最佳答案

正如@FabioAntunes在上面的评论之一中提到的那样,您只需要内联地在d3gantt.js文件本身上导出gantt
确切的语法是

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

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

关于javascript - typescript 'is not a module'错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40302392/

10-11 23:52