【问题标题】:Making VS Code recognize full ES6 syntax让 VS Code 识别完整的 ES6 语法
【发布时间】:2017-05-26 09:41:06
【问题描述】:

VS Code 无法将 :: 识别为有效语法,如

render() {
    return (
        <button
          className="btn btn-primary"
          onClick={::this.handleClick}>
        Click me
        </button>
    );
}

它突出显示 :: 并显示错误 [js] identifier expected,从而使整个文件无效。

如何解决这个问题的想法 - 让 VS Code 尊重 ES6 语法?

【问题讨论】:

  • :: 不是 ES6 的一部分。这是一个实验性功能:github.com/tc39/proposal-bind-operator。它是第 0 阶段,所以它甚至可能永远不会进入规范。
  • 它被包括 Babel 在内的 ES6 到 ES5 编译器支持,并且被广泛用于各种 ES6 示例,这就是为什么我认为这是一个标准功能
  • 是的,Babel 有一些用于 0 阶段提案的插件 (babeljs.io/docs/plugins/preset-stage-0),但您必须明确选择加入它(实际上与 Babel 中的所有内容一样)。这并不是说没有办法让它工作(我对 VS 一无所知),但也有可能是不可能的。
  • 对我来说这个答案很有效:stackoverflow.com/questions/36327096/…

标签: javascript ecmascript-6 visual-studio-code syntax-highlighting


【解决方案1】:

使用扩展

你的代码在我看来像 React,所以你可以试试 https://marketplace.visualstudio.com/items?itemName=dzannotti.vscode-babel-coloring,它可以帮助处理 React 风格的代码和 ES6/ES7

此外,您可以修改扩展以满足您的需要

【讨论】:

  • 但是这个扩展不支持这个操作符(::)。我找不到任何扩展名,我自己添加它失败了(以及这个扩展名和一些新的扩展名)。这应该很容易,但是这种语言的 json 文件对我来说看起来像黑魔法,有人可以帮我吗?
  • @gandalfml 您可以更新扩展并添加对实验功能的支持;)
猜你喜欢
  • 1970-01-01
  • 2018-02-13
  • 2018-10-31
  • 2021-12-03
  • 2021-08-26
  • 2020-09-08
  • 1970-01-01
  • 2022-10-05
  • 2020-08-02
相关资源
最近更新 更多