Typescript baseUrl对VS Code中模块解析没有影响

4

针对下面所描述的项目,我遇到了以下错误:

[ts] Cannot use 'new' with an expression whose type lacks a call or construct signature.

[tslint] Module 'Enums' is not listed as dependency in package.json (no-implicit-dependencies)

我正在使用VS Code打开的项目的文件夹结构如下:
root/
-- tsconfig.json
-- src/
---- web/
------ src/
-------- ts/
---------- Navbar.ts (with exported namespace "Navbar")
---------- Shared/
------------ Other.ts

我的tsconfig.json文件:

{
    "compilerOptions": {
        "baseUrl": "./src/web/src/ts/"
    }
}

Navbar.ts中的导航栏模块:

export namespace Navbar {
   export class NavbarHandler {
       ...
   }
}

在 Other.ts 中导入 Navbar:

import { Navbar } from "Navbar";

const navbar = new Navbar.NavbarHandler();

据我所知,我的baseUrl是正确的,并且被VS Code识别出来了-当我在Other.ts中将鼠标悬停在“Navbar”上时,VS Code会显示正确的模块路径。
我犯了一个错误吗?我的配置中有些东西我没有考虑到或者遗漏了吗?
1个回答

2
您之所以出现此错误,是因为您的tslint配置中启用了“no-implicit-dependencies”规则。
目前还没有选项可以配置此规则以使用相对路径。因此,如果您想要使用相对路径,则需要禁用此规则。请在您的“tslint.json”文件中添加“"no-implicit-dependencies": false”。
这里正在讨论使此规则可配置的问题: https://github.com/palantir/tslint/issues/3364, https://github.com/palantir/tslint/issues/3483这里您还可以找到一些折衷方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接