繁体   English   中英

ES6 早期使用类

[英]ES6 early use of classes

我在 ES6 中有两个相互需要的类。 代码在这里(我使用的是 Meteor.js);

export class Activity {
  constructor(doc) {
    _.extend(this, doc);
  }
  getSubActivities() {
    return Activities.find({ parent: this._id }).fetch();
  }
}

class ActivitiesCollection extends Mongo.Collection {
  /* nothing relevant */
}

export const Activities = new ActivitiesCollection('appjournalActivities', {
  transform(doc) {
    return new Activity(doc);
  },
});

代码工作正常。 但是 linter 不喜欢我在定义之前使用Activitieseslint.org 上的错误描述)。

我是否使用了错误的模式/代码结构? ES6 有标准的解决方案吗?

一种解决方案如下(有效):

export let Activities = null;
/* code as before */
Activities = new ActivitiesCollection('appjournalActivities', {
/* code as before */

但我不是很喜欢它。

代码工作正常。 但是 linter 不喜欢它。

然后拧紧linter,或禁用该特定规则:-)

我是否使用了错误的模式/代码结构?

不。如果您有循环依赖,这几乎是不可避免的。

ES6 有标准的解决方案吗?

您可以将它们放在单独的模块中,这只是将循环依赖从作用域提升到模块级别,但可能不会被 es-lint 检测到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM