【发布时间】:2020-02-01 11:32:57
【问题描述】:
考虑如下界面:
interface Foo {
bar: string;
baz: number;
}
我想按照上面定义的顺序获取Foo的值,而不是赋值的顺序,即:
magicFn({bar: 'a', baz: 0}) === magicFn({baz: 0, bar: 'a'}) // ['a', 0]
我幼稚的方法是使用Object.values(),但这忽略了接口的顺序(接口不是Javascript实体,这并不奇怪)。
我看过一个issue关于它,但它已被MS锁定......
编辑:
我不想要任何财产秩序的保证。我想要一个函数,它按照给定接口定义的顺序检索值。
【问题讨论】:
-
您在运行时没有任何类型(接口)信息
-
接口在运行时不存在。有一些替代方案:Get keys of a Typescript interface as array of strings
-
请注意,我不想要对象属性顺序隔离,我只想根据给定接口按给定顺序检索值。
-
您的用例是什么?可能有更好的方法来实现您所追求的目标?
标签: javascript typescript