【发布时间】:2022-01-18 22:27:50
【问题描述】:
我想定义一个像这样的类型:
declare type TheOneMillionDollarType<
Entry extends [string, any],
TrMap extends [Entry[1], any]
> = /* TODO */unknown;
这样:
type Input = [ "foo", string ] | [ "bar", number ];
type TrMap = [ string, "string !" ] | [ number, "number !" ];
type Expected = [ "foo", "string !" ] | [ "bar", "number !" ];
type Got = TheOneMillionDollarType<Input, TrMap>;
Expected 和 Got 将是同一类型。
非常具体。我要the code of this playground 编译。
【问题讨论】:
-
this approach 适合您吗?只有一个用例很难说,因为可能有很多边缘情况(如果你有
["foo", string | number]或["foo", unknown]等怎么办?如果地图看起来像[string | number, "xyz!"]怎么办?你想要什么?看到了吗?)如果您对我上面写的版本感到满意,我可以写一个答案;否则,请edit这里的代码显示不满意的用例。 -
恭喜,你解决了!它可以编译,所以它对我有用。请提交您的答案,我会接受。非常感谢
标签: typescript types