【发布时间】:2019-03-22 03:34:07
【问题描述】:
我有这个:
interface Obj {
foo: string,
bar: number,
baz: boolean
}
所需的类型是这个元组:
[string, number, boolean]
如何将接口转换为元组?
更新:
我原来的问题是: 我制作了一些具有声明性精神的固执己见的库,用户应该在对象文字中描述函数的参数。像这样:
let paramsDeclaration = {
param1: {
value: REQUIRED<string>(),
shape: (v) => typeof v === 'string' && v.length < 10
},
param2: {
value: OPTIONAL<number>(),
...
},
}
然后库获取这个对象并创建一个带有参数的函数:
(param1: string, param2?: number) => ...
所以,制作这样的功能不是问题,问题是正确键入它,以便用户获得良好的代码完成(IntelliSense)。
附:我知道这无法解决,但知道什么是最接近的解决方法/hack 会很有趣。
【问题讨论】:
-
订单对您来说很重要吗?我认为这是不可能的。
-
您好!秩序并不重要,但最好保持秩序。如果你说不可能,那肯定是不可能的。伤心:-(
-
你能多谈谈你原来的问题吗?我们或许能找到另一种解决方案。
-
当你说“转换”时,你的意思是你想从一个匹配接口的对象创建一个匹配元组类型的数组吗?还是您的意思是要将 Obj 接口更改为元组类型?
-
我希望@MattMcCutchen 仍然愿意提供帮助。我已将原始问题添加到答案中。
标签: typescript tuples