【发布时间】:2018-06-13 16:38:03
【问题描述】:
我希望就我是否/如何利用 TypeScript 来强键入一个像这样工作的函数获得一些建议:
function createDeserializer(typeDeserializers) {
return (data) => {
const deserializer = typeDeserializers[data.__type];
return deserializer(data);
}
}
我希望能够做这样的事情:
const personDeserializer = createDeserializer({
'employee': (data) => new Employee(data),
'customer': (data) => new Customer(data)
});
const person1 = personDeserializer({ __type: 'employee', ... });
const person2 = personDeserializer({ __type: 'customer', ... });
// Here TypeScript knows that person1 is an 'Employee' instance, and person2 is a 'Customer' instance.
我想我需要对 typeDeserializers 属性进行某种键映射,并以某种方式将其映射到返回值,但我有点迷茫。
【问题讨论】:
标签: typescript