如何将可选类型转换为非可选
从types.optional(types.string)
到types.optional
据我所知这是有效的:
const t = optional(types.string);
delete t.defaultValue
但这似乎是非常错误的。有没有更好的办法?
如何将可选类型转换为非可选
从types.optional(types.string)
到types.optional
据我所知这是有效的:
const t = optional(types.string);
delete t.defaultValue
但这似乎是非常错误的。有没有更好的办法?
您可以使用.named(name)
克隆给定类型的方法,给它一个新类型,name
并为您提供一种方法来“扩展”它,使用其他属性、视图、操作,或者可能覆盖原始类型中声明的那些。
例子:
const Square = types
.model("Square",
{
width: types.number
}
)
.views(self => ({
surface() {
return self.width * self.width
}
}))
// create a new type, based on Square
const Box = Square
.named("Box")
.views(self => {
// save the base implementation of surface
const superSurface = self.surface
return {
// super contrived override example!
surface() {
return superSurface() * 1
},
volume() {
return self.surface * self.width
}
}
}))