2017-07-11 53 views
2

我已經配置了我的tsconfig.json,所以我可以在代碼中使用簡短的導入路徑以簡化操作。例如,我可以做import { FooService } from 'core'而不是被迫做類似import { FooService } from '../../../core/services/foo/foo.service'的事情。Angular2:找不到命名空間'environment'

這只是正常,但由於某種原因,現在,我已經創建了一個新的文件,進口的一個是拋出一個錯誤:

Cannot find namespace 'environment'.

是因爲下面一行此錯誤:import { environment } from 'environment';

這很奇怪,因爲我在許多其他服務中都有相同的導入,並且它們都沒有拋出錯誤,它只發生在我創建的這個新文件中。

這是我tsconfig.json

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "baseUrl": "src", 
    "paths": { 
     "core": ["app/core"], 
     "core/*": ["app/core/*"], 

     "shared": ["app/shared"], 
     "shared/*": ["app/shared/*"], 

     "modal": ["app/modal"], 
     "modal/*": ["app/modal/*"], 

     "environment": ["environment/environment"]// HERE 
    }, 
    "sourceMap": true, 
    "declaration": false, 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "target": "es5", 
    "typeRoots": [ 
     "node_modules/@types" 
    ], 
    "lib": [ 
     "es2016", 
     "dom" 
    ] 
    } 
} 

正如你所看到的,paths設置正確。如果他們不是這樣就不會在其他文件中一直工作...

這是怎麼回事?有人知道怎麼修這個東西嗎?

回答

0

問題解決了

我在我的代碼導致了這一現象有一個錯字。很難找到,因爲intellisense沒有強調它。

我:url: environment.serverUrl;

當我應該有:url: string = environment.serverUrl;

我是用一個值作爲意外的類型。哎呀!