【发布时间】:2022-01-23 23:24:57
【问题描述】:
我正在尝试利用命名元组(在本例中为 AnniversaryPropertyConfig) 在以下简化代码中描述函数参数。
interface AnniversaryParameters {
value?: 'date-and-or-time' | 'text';
altid?: number | string;
calscale?: 'gregorian';
}
type AnniversaryPropertyConfig = [value: string, parameters?: AnniversaryParameters];
function main(config: AnniversaryPropertyConfig) {
return config;
}
const config = ['19960415', { value: 'text' as const }];
main(config);
但是我一直收到以下错误:“目标需要 1 个元素,但源可能有更少。(2345)”我尝试将 as const 断言应用于 config 数组及其值,但徒劳无功。如果我将 config 变量类型转换为 AnniversaryPropertyConfig 类型,该错误就会消失。但我觉得这是 TypeScript 在没有帮助的情况下应该能够推断出的东西。
可在here 找到适用的 TypeScript Playground 的链接作为参考。
【问题讨论】:
标签: typescript types tuples typechecking