【问题标题】:PhpStorm warns about Object methods in Vue component when using TypeScript使用 TypeScript 时 PhpStorm 警告 Vue 组件中的 Object 方法
【发布时间】:2021-11-16 19:07:35
【问题描述】:

使用 TypeScript(通过 script 标签的lang="ts" 属性)创建 Vue 组件时,PhpStorm(版本 2021.2.2)显示有关本机 JavaScript Object 的任何方法的警告为“未解析的函数或方法”,例如:

<template>
  ...
</template>

<script lang="ts">
const v = Object.values({ a: 'a', b: 'b' });
</script>

结果:

如何配置 PhpStorm(或 WebStorm)以将 Object 识别为原生 JS ES6+ Object

(作为参考,Cmd + 点击Object 会跳转到lib.es5.d.ts,因此假定 JavaScript 版本错误。但是,在 Languages & Frameworks > JavaScriptScript 下,版本已经设置为 ECMAScript 6+)

【问题讨论】:

  • 看看这个github issue which mentions your exact problemThe script lang=ts showing misleading errors in .vue files
  • 编译时没有报错吗?问题仅与IDE有关吗?您在屏幕截图中的“更多操作...”下有哪些选项。
  • @JuanMendes - github 问题似乎有点不同,因为它讨论的是 vue 实例上的引用问题,而不是 IDE 中的通用 JS 版本不匹配。回覆。编译时出错 - 不,没有错误,代码执行良好。只是 IDE 出了问题。
  • 如果您的 typescript 配置错误(看起来确实如此),编译器也会显示错误。您是否尝试在 Settings | 中启用编译器服务?语言和框架 |打字稿,顺便说一句?
  • @lena - 是的,Typescript 语言服务已启用。编译器没有显示任何错误 - 纯粹是 IDE 将其突出显示为问题。

标签: javascript typescript vue.js phpstorm webstorm


【解决方案1】:

Object.values()part of ES2017。 确保将"target" 设置为"esnext" 或在tsconfig.json 中将"esnext" 添加到"lib": []

【讨论】:

  • 我在 2021.2.2 上遇到了问题行为 - 所以它一定是配置问题...
  • 我现在添加了更好的屏幕截图和确切的错误消息措辞。
  • “为我工作”并不是一个真正的答案,是吗?
  • ctrl+点击Object - 跳转到哪里?
  • @lena - 它会跳转到lib.es5.d.ts,因此很明显出于某种原因假定了该版本的 JS。
猜你喜欢
  • 1970-01-01
  • 2020-08-13
  • 2021-11-13
  • 2021-01-03
  • 2015-06-14
  • 2019-11-11
  • 2018-05-10
  • 2021-09-21
  • 2021-02-26
相关资源
最近更新 更多