Typescript编译器抱怨在子目录中声明的外部d.ts文件

时间:2015-03-22 22:03:17

标签: typescript amd

我有一个标准的Web应用程序目录结构,其中包含javascripts目录下的一些文件夹。直接在javascripts下我有我的入口点文件main.ts,它看起来像这样:

import ext = require("./shared/extern");

var testval = "3"
export class main{
    print(additional:string){
        console.log(additional+ext.culture());
    }

}

在名为javascripts的{​​{1}}子目录下,我只有一个文件shared,它看起来像这样:

extern.d.ts

我希望此代码能够正常工作,因为生成的js可以与我现有的应用程序一起使用。但是,运行

declare module extern{
    function culture(): {
        name: string;
    }
}

抱怨tsc --m amd main.ts 尽管仍然生成了准确的文件。我想将这些更改集成到我的构建系统中,但由于这些错误,它会失败。 我已经使用参考路径标记和

进行了调查
File './shared/extern.d.ts' is not an external module.

在代码中,但生成的js代码在我的项目中不会解决。

有人知道如何解决这些错误吗?

感谢。

2 个答案:

答案 0 :(得分:0)

所以我错过了export = extern;底部的extern.d.ts。 extern文件需要如下所示:

declare module extern{
    function culture(): {
        name: string;
    }
}

export = extern;

现在可行。

答案 1 :(得分:0)

我愿意:

declare module "extern"{
    export function culture(): {
        name: string;
    }
}

然后使用commonjs node_modules或AMD shim加载extern