【发布时间】:2018-07-06 19:49:51
【问题描述】:
我想以某种方式键入一个函数,返回类型将是一个对象,它包含数组中指定的键作为参数。这些键也应该都是特定的枚举类型。我已经尝试了几件事,但无法使其正常工作。也许有人知道这是否可能以及如何实现?
enum Status {
TIME = 'time',
LOCATION = 'location'
}
function getStatus(statusToGet: Status[]) {
// This function will always return an object containing all passed in
// status as a key and boolean as a value, e.g.
return statusToGet.reduce((prev, stat) => {
prev[stat] = true; // or false
return prev;
}, {});
}
getStatus([]) // -> {}
getStatus([Status.TIME]) // -> { time: true }
getStatus([Status.TIME, Status.LOCATION]) // -> { time: true, location: false }
是否可以正确键入getStatus函数,以便TS知道返回类型中有哪些键?
【问题讨论】:
标签: typescript