错误:“类型”只能在 .ts 文件中使用 - Visual Studio Code using @ts-check

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

但是我的文件看起来像这样:

// @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.

error from vscode for ts

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

我尝试在我的vscode设置中设置,如TSLint扩展文档中提到的,但没有运气。tslint.jsEnabletrue

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


答案 1

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

  1. 安装扩展流语言支持

  2. 禁用内置的 TypeScript 扩展:

    1. 转到“扩展”选项卡
    2. 搜索@builtin TypeScript 和 JavaScript 语言特性
    3. 点击禁用

答案 2

在 VS 代码设置中使用,它不会禁用 ESLINT。我同时使用ESLINT和Flow。只需按照说明流程与代码设置"javascript.validate.enable": false

在 settings.json 中添加此行。帮助"javascript.validate.enable": false