【发布时间】:2021-08-01 01:26:23
【问题描述】:
好的,所以我需要一些高级打字稿类型技巧。我有一个带有 2 个参数的函数,但我希望第二个参数类型取决于第一个参数类型。例如,如果我的第一个参数是数字,那么我的第二个参数需要是一个字符串,但如果我的第一个参数是 Record,那么我的第二个参数是一个数字。我知道我可以做一些函数原型重载,但我希望它是动态的,所以它看起来像这样:
type Test = [number, string] | [Record<string, any>, number];
foo<Test>(34, "bar") // ok
foo<Test>({a:34}, 56) // ok
foo<Test>(34, 56) // error
foo<Test>({a:34}, "bar") // error
我没有打字稿方面的高级知识来自己弄清楚,所以我来找你们所有人指导我,如果这可能的话。
【问题讨论】:
标签: typescript