【发布时间】:2020-03-19 17:49:21
【问题描述】:
我有以下对象:
const foo = {
fieldAnt: "foo",
fieldCab: "baz"
};
我想自动将其映射到一个类型,其中键为大写并带有下划线:
type FIELDS = {
FIELD_ANT: "fieldAnt",
FIELD_CAB: "fieldCab"
}
是否可以使用keyof 或类型映射通过 typescript 以编程方式实现这一点?
【问题讨论】:
-
我不这么认为...请问为什么这会有用?
-
Typescript 只提供类型,你有点问它实际上会影响和改变对象。
-
不幸的是,您不能使用 typescript 类型进行字符串操作,因此您可以强制 FIELDS 值等于 keyof foo。您无法自己创建所需的大写下划线键。
-
这个想法是我会运行一个函数来在运行时实际创建该对象,但需要存在用于静态检查的类型
标签: typescript