问题标签 [ecmascript-next]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9666 浏览

javascript - 我今天如何使用装饰器?

我看到今天已经在一些 javascript 代码中使用了装饰器。我的问题实际上是两个方面。

第一的:

如果装饰器还没有最终确定,那么今天如何在生产代码中使用它们呢?浏览器支持会不存在吗?

第二:

鉴于今天可以使用它,正如一些开源项目所建议的那样,让装饰器工作的典型推荐设置是什么?

0 投票
0 回答
224 浏览

javascript - 将装饰器与中继容器一起使用

我正在尝试使用装饰器来简化创建中继容器的过程,如下所示:https ://gist.github.com/miracle2k/f39aaaccbc0d287b2ddb

不幸的是,它无法正常工作并出错Invariant Violation: RelayQueryNode: Abstract class cannot be instantiated.

我的代码没有什么特别有趣或奇怪的地方。类似于:

有谁知道为什么会这样?我已经尝试调试了一段时间,但无法正常工作。

如果我在装饰器函数之外单独创建容器,它就可以正常工作。

编辑:这与装饰器不工作无关。我的装饰器在其他方面工作得很好,这是一个中继问题。

0 投票
1 回答
274 浏览

javascript - 类装饰器可以同时接收构造函数和附加参数吗?

我一直在玩 Babel 和装饰器。例如:

我担心的是,是否有某种方法可以对类使用装饰器,并且还能够为所谓的装饰器提供参数,并且不会失去将构造函数作为第一个参数的机会:

0 投票
2 回答
1955 浏览

javascript - 如何迭代 ES6/2015 类实例的属性

鉴于这两个类

什么代码会从bar实例中得到这个属性列表?['f1', 'f2', 'b1', 'b2']

这是一个 Babel 示例


更新

这应该是@Marc C 答案的一部分:

使用装饰器,我可以轻松地将不可枚举的属性转换为可枚举的属性:

这是装饰器的来源:

这是一个 Babel 示例

0 投票
2 回答
380 浏览

javascript - ES6 异步生成器结果

ES6 有返回迭代器的生成器

有一个关于返回Promises的异步函数的提议:

那么如果我将两者结合起来会发生什么,如下所示:

它返回什么?是Promise<Iterator<Item>>吗?Iterator<Promise<Item>>? 还有什么?我该如何消费它?我想应该有一个相应的for循环,它将异步迭代其结果,例如:

在尝试访问下一个之前等待每个项目可用。

0 投票
2 回答
1285 浏览

javascript - ES7 异步函数和 Promise 之间的技术区别?

我试图更好地理解async functionJavaScript 中的 an 在技术上是什么,即使我基本上知道如何使用它们。

许多对 async/await 的介绍让人相信一个async函数基本上只是一个承诺,但显然不是这样(至少不是Babel6 转译的代码):

await尽管如此,承诺绝对是可能的,例如await fooPromise().

  • async funtion它自己的东西并且await与承诺兼容吗?

  • 并且,有没有办法区分简单functionasync function运行时(以 Babel 兼容的方式)?

0 投票
2 回答
527 浏览

javascript - Visual Studio 中的 EsLint - 无法在 javascript 文件上使用静态道具

节点模块:

  • 埃斯林特 1.10.3
  • Babel-EsLint 4.1.6
  • Eslint-plugin-react 3.15.0

被检查的示例文件:

在命令行下,我可以毫无问题地使用 babel 进行 lint 和 transpile。问题是试图从视觉工作室进行 lint。我正在使用内部使用 esLint的Web Analyzer 插件。

这个 Visual Studio 模块定义了一个.eslintrc文件C:\Users\My-Username,我已经继续并更新了这个文件,以及使用这个配置的 node_modules 的主文件夹:

但我仍然收到“JSX Parser: Unexpected Token =”错误:

关于让 Web Analyzer 以与命令行工具相同的方式运行的任何想法?

Visual Studio Linting 错误

0 投票
2 回答
555 浏览

javascript - ES7 中的存根类字段函数

在我的测试套件中,我如何存根一个类的属性,它是一个函数*?使用普通方法很容易使用Object.getOwnPropertyNames(component.prototype)和猴子修补每个找到的方法,但经过长时间的努力,我还没有找到任何方法来提取通过分配给类的字段创建的函数。

我的测试堆栈由 Jest 和 Jasmine2 和 babel 组成。

转译的问题在于,箭头函数属性(当然,正如预期的那样)分配给输出转译“类”的实例(当然,实际上是函数)。所以除了实例化这个对象之外,我没有看到任何方法来存根它们,对吗?这是输入 es7 代码和 babel 输出的示例。但是我不是特别喜欢这个解决方案,看起来很hacky。这个解决方案的另一个缺点是我不能直接实例化组件的类。


(*) 这个问题的背景是单元测试用类似 es7 的类编写的 React 组件,为了自动绑定的目的,将箭头函数分配给类的属性。

0 投票
1 回答
831 浏览

javascript - 在 JavaScript 中装饰实例方法的问题

我在装饰 ES6 中的实例方法时遇到了一个难题。我在装饰该方法时没有问题,但它似乎被困在类实例的单一状态中。这是我正在处理的具体内容:

我意识到上面的代码正在做它应该做的事情,但是如果我想访问foo和添加到范围中的其他属性,我该如何装饰decoratedMethod并仍然绑定新的函数属性?

0 投票
4 回答
24752 浏览

javascript - Babel 对 Object.entries 的支持

我正在查看Object.values/Object.entries 的第 3 阶段提案,我真的很想在我当前的 JavaScript 项目中使用它。

但是,我不知道是否有任何 Babel 预设支持它。由于上面链接的 GitHub 存储库说这是第 3 阶段的提案,我认为它会成为 babel-preset-stage-3 的一部分,但似乎不是。

是否有任何 Babel 预设(甚至插件?)可以让我今天使用 Object.entries?