Angular2:找不到命名空间'环境'

时间:2017-07-11 12:05:06

标签: angular typescript

我已经配置了tsconfig.json,因此我可以在代码中使用简短的导入路径以简化。例如,我可以执行import { FooService } from 'core'而不是被迫执行import { FooService } from '../../../core/services/foo/foo.service'之类的操作。

这很好用,除了某些原因我现在已经创建了一个新文件,其中一个导入错误:

  

找不到命名空间'环境'。

由于以下行发生此错误: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已正确设置。如果它们不是,它将无法在其他文件中一直工作......

这里发生了什么?任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

问题已解决

我的代码中有一个拼写错误导致了这个问题。很难找到,因为intellisense没有强调它。

我有:url: environment.serverUrl;

我什么时候应该:url: string = environment.serverUrl;

我偶然使用了一个值作为类型。糟糕!