如何停止 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
.
我在 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
.