小编典典

Error: 'types' can only be used in a .ts file - Visual Studio Code using @ts-check

all

我开始在我正在使用 Visual Studio Code 处理的 Node 项目中使用 TypeScript。我想遵循类似于 Flow 的“选择加入”策略。因此// @ts-check,我将文件放在文件的顶部,.js希望为该文件启用 TS。最终,我想要与 Flow 一样的“linting”体验,因此我安装了插件TSLint,这样我就可以看到 Intellisense 警告/错误。

但是我的文件看起来像:

// @ts-check

module.exports = {
  someMethod: (param: string): string => {
    return param;
  },
};

我的tsconfig.json文件看起来像......

{
  "compilerOptions": {
      "target": "es2016",
      "module": "commonjs",
      "allowJs": true
  }
}

我收到此错误:[js] 'types' can only be used in a .ts file.如下图所示。

来自 ts 的 vscode 错误

我看到了这个问题,它建议在 vscode 中禁用 javascript 验证,但是这并没有显示任何TypeScript Intellisense 信息。

如 TSLint 扩展文档中所述,我尝试在我的 vscode 设置tslint.jsEnable中进行设置,但没有运气。true

为了在 TypeScript 中使用文件并获得 Intellisense,正确的设置是什么,以便.js在运行任何 TS 命令之前知道代码中的错误是什么?


阅读 94

收藏
2022-07-14

共1个答案

小编典典

我正在使用带有 vscode 的流,但遇到了同样的问题。我通过以下步骤解决了它:

  1. 安装扩展流语言支持
  2. 禁用内置的 TypeScript 扩展:
  3. 转到扩展选项卡
  4. 搜索@builtin TypeScript 和 JavaScript 语言功能
  5. 点击禁用
2022-07-14