我已经配置了我的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
设置正确。如果他们不是,它就不会在其他文件中一直工作......
这是怎么回事?有人知道如何解决这个问题吗?
问题已解决
我的代码中有一个拼写错误,导致这种情况。很难找到,因为智能感知没有突出显示它。
我有:url: environment.serverUrl;
当我应该有:url: string = environment.serverUrl;
我不小心使用了一个值作为类型。哎呀!