2016-10-06 118 views
1

我只是在學習打字稿。我正在編寫Angular 2應用程序typescript 2,使用SystemJS 0.15.31作爲我的模塊加載程序。打字稿聲明:爲什麼這會拋出一個錯誤

我想定義應用程序範圍內的常量。在一個文件中,並根據需要將其導入到我的組件中。這是我有:

根/ systemjs.config.js

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

根的/ dev/config.ts

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

根的/ dev /應用程序/應用程序.component.ts

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

轉入Javascript後,.ts文件放入dist/。然而,打字稿編譯器上顯示的app.component.ts第一行,並在瀏覽器這個錯誤,AppComponent沒有看到Config.version

錯誤TS2307:找不到模塊「配置」。

我的語法有什麼問題?

回答

1

我認爲你的問題是SystemJS期望dist/config是一個文件夾。

擴展添加到該文件的路徑,像這樣:

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

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

export const Config = { 
    ... 
} 
+0

謝謝。我做了改變。 'config'行中的相同'import {Config}引發同樣的錯誤。如果我更改爲使用相對路徑'.. from'../ config'',那麼事情沒有錯誤。問題是文件之間的相對路徑變化,所以它不能很好地擴展。這是爲了讓我在OP中使用'SystemJS map'選項的一條固定路徑。 – BeetleJuice

+0

這個新的答案呢? –

+0

我很抱歉地說你對最初的答案沒有任何影響。即使路徑缺少文件擴展名,SystemJS也沒有問題找到配置文件:我知道這一點,因爲'version'變量的值被正確地導入到組件中。不過,我得到了同樣的錯誤,從打字稿編譯器 – BeetleJuice

相關問題