簡體   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