我需要创建从现有的不可变对象类型中仅提取可变对象类型的类型,例如:
import * as Immutable from 'seamless-immutable'
interface IObjType {
field: string;
}
type TObjImmType = Immutable.Immutable<IObjType>;
const obj: IObjType = { field: 'val' };
const objImm: TObjImmType = Immutable(obj);
// dummy function to show what I need to do
const getMutable = (immObj: TObjImmType): IObjType => immObj.asMutable();
const result = getMutable(objImm);
所以问题出在getMutable
. 打字稿不检查它是否重新返回可变或不可变对象,我需要强制 TS 验证这一点,如果返回不可变则抛出错误。
这个怎么做?