如何停止 ts-lint 抱怨我在一个文件中创建了 类 而在其他文件中创建了 类

How to stop ts-lint complaining about my created classes in a file and classes created in other files

我在 Visual Studio 代码中的文件顶部放置了以下语句:

// @ts-check

我的扩展中有 ESLint 2.1.23。

我在我的 javascript MessageQueue 中创建了一个 class,它有一个成员是我的 classes 中的另一个成员,称为 OrderedListARR 定义在另一个文件中。这是代码:

MessageQueue = function () {
    this.m_ARR = new OrderedListARR();
};

这是 Visual Studio 代码中的样子:

当我将鼠标悬停在 MessageQueue 上时,它显示 找不到名称 MessageQueue 并且对于 OrderedListARR.

也是如此

我怎样才能克服这个问题,让 ts-lint 认识到这些是 真正诚实的 东西?

我建议阅读 importing/exporting,例如CommonJS and ESM 两者都受 NodeJS 支持(如果您这样标记脚本,大多数浏览器都支持 ESM)。您可以 Google 了解如何在两者中准确使用 ESM 以及如何在浏览器中使用 CommonJS(可能通过捆绑),但 CJS 应该默认在 Node.js 中使用 require('module').

简单的解释,一个文件,例如something.js 看起来像这样:

module.exports.SomeClass = ...;

而您的其他文件如下所示:

const { SomeClass } = require('./something');

这些示例使用 CJS,ESM 将使用不同的语法

这是为了导入您在其他文件中定义的类。

您的第二个问题似乎是您在定义 MessageQueue 时没有使用 const/let/var。当您声明一个全新的变量时,您需要使用例如let someVar = ...;。你没有,因此 ESLint 抱怨。对于 类,您应该也可以使用 class syntax。在这种情况下,简单地执行 class ClassName { ... } 会自动算作使用 var.