我已经配置了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
已正确设置。如果它们不是,它将无法在其他文件中一直工作......
这里发生了什么?任何人都知道如何解决这个问题?
答案 0 :(得分:7)
问题已解决
我的代码中有一个拼写错误导致了这个问题。很难找到,因为intellisense没有强调它。
我有:url: environment.serverUrl;
我什么时候应该:url: string = environment.serverUrl;
我偶然使用了一个值作为类型。糟糕!