此语法需要导入的帮助程序,但找不到模块“tslib”

此语法需要一个导入的帮助程序,但无法找到模块“tslib”

This syntax requires an imported helper but module ‘tslib’ cannot be found

要解决错误“This syntax requires an imported helper but module ‘tslib’ cannot be found”,tslib通过运行安装npm install -D tslib@latest并确保您的 IDE 使用正确的(工作区)TypeScript 版本。

以下是错误发生方式的示例:

索引.ts
// ⛔️ Error: This syntax requires an imported helper but module 'tslib' cannot be found @sealed export class BugReport { type = 'report'; title: string; constructor(t: string) { this.title = t; } } function sealed(constructor: any) { Object.seal(constructor); Object.seal(constructor.prototype); }

安装最新版本tslib

tslib首先,通过在项目的根目录中打开终端并运行以下命令来确保已安装。

npm install -D tslib@latest

确保你的 IDE 使用正确版本的 TypeScript

如果错误仍然存​​在,您的代码编辑器可能正在运行旧
版本的 TypeScript

如果你使用 VSCode,你可以:

  1. 按下CTRL + Shift + P以打开命令面板。
  2. 键入typescript version并单击
    TypeScript: Select TypeScript version
  3. 然后点击Use Workspace version
如有必要,请重新启动 IDE 和开发服务器。即使错误已解决,VSCode 也经常需要重启。

设置targetes6或更新版本

如果您仍然遇到错误,请打开您的
tsconfig.json文件并确保您的
target选项设置为es6或更新。

tsconfig.app.json请注意,如果使用 Angular 或构建过程中使用的任何配置文件,您可能还必须在文件中设置选项。

tsconfig.json文件
{ "compilerOptions": { "importHelpers": true, "target": "es6", }, "include": ["src/**/*"], "exclude": ["node_modules", "src/**/*.spec.ts"] }

target选项更改哪些 JavaScript 特性被降级,哪些保持不变

如果您不想使用tslib辅助函数,请删除该importHelpers
选项(如果您在文件中启用了该选项)
tsconfig.json

删除您的 node_modules 并重新安装您的依赖项

如果错误没有解决,尝试删除你的node_modules
package-lock.json文件,重新运行
npm install并重启你的 IDE。

# 👇️ (Windows) delete node_modules and package-lock.json rd /s /q "node_modules" del package-lock.json del -f yarn.lock # 👇️ (macOS/Linux) delete node_modules and package-lock.json rm -rf node_modules rm -f package-lock.json rm -f yarn.lock # 👇️ clean npm cache npm cache clean --force npm install

如果错误仍然存​​在,请重新启动 IDE和开发服务器。

确保文件包含在你的项目中

如果您使用include
files选项,请确保该文件包含在您的项目中并且正在被 TypeScript 跟踪。

如果您的项目使用排除
选项,请确保您的
exclude数组不排除您正在处理的文件。

exclude选项会更改该include选项找到的内容,有效地从编译中过滤掉一些文件夹或文件。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: