[英]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 不喜歡我在定義之前使用Activities
( eslint.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.