打字稿声明:为什么会抛出错误

时间:2016-10-06 04:00:19

标签: angular typescript module systemjs

我只是在学习Typescript。我正在使用Angular 2编写一个typescript 2应用,使用SystemJS 0.15.31作为我的模块加载器。

我想定义app范围的常量。在一个文件中,根据需要将其导入我的组件中。这就是我所拥有的:

根/ systemjs.config.js

System.config({
    map:{
        'app': 'dist',
        'config': 'dist/config',
        ...
    }
});

根的/ dev / config.ts

export module Config {
    var version:string = '1';
}

根的/ dev /应用程序/ app.component.ts

import {Config} from 'config';
...
export class AppComponent {
    ...
    version = Config.version;
}

转换为Javascript后,.ts文件将放入dist/。但是,typescript编译器在app.component.ts的第一行显示此错误,而在浏览器中,AppComponent未看到Config.version

  

错误TS2307:找不到模块'config'。

我的语法有什么问题?

1 个答案:

答案 0 :(得分:1)

我认为您的问题是SystemJS期望dist/config成为文件夹。

在文件路径中添加扩展名,如下所示:

map: {
    ...
    'config': 'dist/config.js' 
    ...
}

PS: export module不是打字稿。我想你想要:

export const Config = {
   ...
}