我们使用ES6和immutable.js来创建不可变的类.
class Animal extends Record({foo: ""});
如何从Animal继承并添加自定义属性,但仍然可以将其用作不可变记录?
class Animal extends Animal {}; // How to add the key "bar"?
最佳答案
Record
方法将创建的类型锁定为defaultValues,不能用于进一步扩展
属性.这是我提到的
here之一.
如果你不是太想在运行时检查继承(instanceof),那么你可以这样做 –
let foo = {foo: ""};
class Animal extends Immutable.Record(foo){}
let bar = {bar: ""};
class Mammals extends Immutable.Record(Object.assign({},foo,bar)){}
虽然不能替代真正的继承,但它可以让您重复使用模式.方法不会以这种方式继承.
原文链接:https://www.f2er.com/js/429024.html