【发布时间】:2021-07-29 03:13:40
【问题描述】:
我有一个函数,其中一个 args 是一个字符串数组。它返回一个对象,其中所有键都是该字符串数组中的值。是否可以让 Typescript 中的函数返回类型反映这一点?
我认为这最好用一个例子来解释:
const clientConfigs =
getClientConfigs(clientId, ['timeZone', 'flagRequireTwoApprovals']);
// Above function will return a value for each requested configuration.
// This will look something like:
// {
// "timeZone": "America/New_York",
// "flagRequireTwoApprovals": true
// }
// At this point, the type of clientConfigs is: Record<string, any>
// HOWEVER, I want the type to be:
// Record<'timeZone'|'flagRequireTwoApprovals', any>
// I want this to be identified as error, because I
// forgot to capitalize "Z" in "timeZone":
const clientTime = moment.tz(clientConfigs.timezone).toISOString();
// I want this to be identified as error, because I
// forgot to retrieve the "adminEmail" config:
await sendEmail({to: configs.adminEmail, body: "Failed to whatever ......"});
【问题讨论】:
标签: typescript typescript-generics