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

新手上路,请多包涵

我开始在我正在使用 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 但没有运气。

为了使用 .js 文件和 TypeScript 并获得 Intellisense 的正确设置是什么,所以我知道我的代码中的错误是什么,然后再运行任何 TS 命令?

原文由 james 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

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

  1. 安装扩展 流语言支持

  2. 禁用内置的 TypeScript 扩展:

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

原文由 Idan Dagan 发布,翻译遵循 CC BY-SA 4.0 许可协议

类型/接口只能应用于 TypeScript 文件,而 .js 文件是 JavaScript 文件。

所以解决方案很简单:

将扩展名 .js 更改为 .tsx 以使用类型/接口。

原文由 Leandro Ariel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题