ES6早期使用类
ES6 early use of classes
本文关键字:ES6 更新时间:2023-09-26
我在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 */
但是我不太喜欢它。
代码工作正常。但是门楣不喜欢。
然后拧上门楣,或者禁用特定规则:-)
我是否使用了错误的模式/代码结构?
没有。如果您有循环依赖关系,这几乎是不可避免的。
ES6中有标准解决方案吗?
您可以将它们放在单独的模块中,这只是将循环依赖关系从作用域提升到模块级别,但可能不会被es lint检测到。
相关文章:
- 没有找到相关文章