如何让 VS Code 识别 ES7 绑定操作符

Posted

技术标签:

【中文标题】如何让 VS Code 识别 ES7 绑定操作符【英文标题】:How to make VS Code recognize the ES7 bind operator 【发布时间】:2019-03-15 21:54:08 【问题描述】:

VS Code 无法识别开箱即用的 ES7 绑定语法。相反,它显示为语法错误:

Example of highlighted error in code

[ts] Declaration or statement expected.
我四处寻找是否有可以帮助识别它的扩展程序无济于事。 我还尝试将 VS Code 配置为使用我自己的 .eslintrc,这似乎也不起作用。到目前为止,我什至无法确认 VS Code 能够识别我的 .eslintrc 文件并将其用于自己的配置。

有人知道如何配置 VS Code 来识别语法吗?我意识到这是一个 Stage 0 功能,但我觉得它在这一点上相当普遍。我也意识到我看到的是 TypeScript 错误,但是禁用 TypeScript linting 并不能消除错误。我认为它只是显示为 TypeScript 错误,继承自 javascript

经过大量搜索,关于如何使用它的文章很多,但涉及到 VS Code 的文章几乎没有。

【问题讨论】:

“我意识到这是第 0 阶段的功能”,但您称它为 ES 7 功能。 “但是我觉得这在这一点上相当普遍” 有任何证据吗?它既不是 JavaScript 也不是 TypeScript 的一部分,所以我建议不要在生产中使用它。 您好,感谢您的评论。 “我建议不要在生产中使用它。” — 为了清楚起见,我们谈论的是通过 Babel 转译器的 Stage 0 代码。我不是在问我是否可以在生产中使用它。我在问这个特定的错误。 ["foo", "bar"]::toClassName() 将转换为 toClassName.call(["foo","bar"]) 所以我同意你的看法。不应在生产中使用绑定语法。您的评论没有加入讨论。 问题在于 TypeScript 编译器,而不是 Babel 或 VS Code。您不能将此功能与 TS 一起使用,因为它既不是 ES 标准的一部分,也不受 TS 支持。以防我模棱两可:我建议根本不要使用绑定语法。甚至在编译之前的源代码中也没有。 【参考方案1】:

如果你使用 Typescript,这是一个 Typescript 错误(尽管你会得到与 JS 相同的错误)。而Typescript是not planning to support the operator,主要是因为TC39提案is dead。目前还没有计划在 JS 或 TS 中支持它,只有 Babel 支持(实验性的)。它不是 ES7,甚至没有计划在某个时候出现在规范中,所以它是一个 SyntaxError 是有充分理由的。

经过大量搜索,有很多关于如何使用的文章

如果那些文章没有提到运营商仍处于早期提案阶段,我不会再将它们用作可靠的资源。

【讨论】:

提案有一个新的迭代已经到了Stage 1 github.com/tc39/proposal-extensions

以上是关于如何让 VS Code 识别 ES7 绑定操作符的主要内容,如果未能解决你的问题,请参考以下文章

如何让 VS Code 智能感知识别附加到现有类的新方法

如何让 VS Code 识别单回购包之间的打字稿声明?

VS Code Python 无法识别匹配语句

VS Code使用

VS Code识别编辑规范,ESlint规则,VS Code保存去掉自动加分号逗号双引号

VS CODE使用:如何让标签栏多行显示