我正在使用Immuatable.js,并且想扩展Immutable.Record,所以我有一个工作原理相同的类,但添加了一些默认属性和功能。
从源头来看,Record.js是一个ES6类,它扩展了KeyedCollection但从构造函数返回一个函数。
https://github.com/facebook/immutable-js/blob/master/src/Record.js
我真的不明白这样做的副作用。
基本上,我想要一个FooRecord类,可以在其中执行以下操作:
class FooifiedRecord extends FooRecord({
name: '',
}){
sayMyName(){
return this.name;
}
};
等效于:
class FooifiedRecord extends Immutable.Record({
name: '',
foo: '',
}) {
doFoo(){
return this.foo + ' bar';
}
sayMyName(){
return this.name;
}
}
但是我不确定正确的语法。
编辑:与How to construct subclasses of Immutable.Record?不太相似,它涵盖了Immutable.Record的基本用法。我想知道如何扩展它。
最佳答案
如果您不打算使用new实例化基类,则可以执行justinko recommends here的操作:
import { Record } from 'immutable'
const Base = defaultValues => class extends Record({
id: undefined,
links: {},
errors: {},
...defaultValues
}) {
}
class User extends Base({
firstName: undefined,
lastName: undefined
}) {
fullName() {
return this.firstName + ' ' + this.lastName
}
}
关于javascript - 在Immutable.js中扩展记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42653048/