我正在try 根据现有类型的键动态生成一个类型.

interface A {
    X: number
}

type S = keyof A // correct "X"
type V = A[S] // correct: number

type B = {
    [S]: A[S] // Error: A computed property name in a type literal must refer to an
              // expression whose type is a literal type or a 'unique symbol' type.

}

基于其他类型的键生成具有动态属性的类型的正确方法是什么?

推荐答案

你真的很接近.你只需要换[S]: A[S][k in S]: A[k].

interface A {
    X: number
    Y: string;
}

type S = keyof A;

type B = {
    [k in S]: A[k];
}

playground

Typescript相关问答推荐

`((PrevState:NULL)=>;NULL)|null`是什么意思?

typescribe警告,explate—deps,useEffect依赖项列表

泛型函数即使没有提供类型

类型脚本类型字段组合

泛型函数中输入参数类型的推断问题

使某些(嵌套)属性成为可选属性

我可以为情态车使用棱角形的路由守卫吗?

Angular NgModel不更新Typescript

在数据加载后,如何使用NgFor在使用异步管道的可观测对象上生成子组件?

为什么在leetcode问题的测试用例中,即使我确实得到了比预期更好的解决方案,这段代码也失败了?

FatalError:Error TS6046:';--模块分辨率';选项的参数必须是:'; node ';,'; node 16';,'; node

正交摄影机正在将渲染的场景切成两半

使用泛型识别对象值类型

如何将spread operator与typescripts实用程序类型`参数`一起使用

如何在Reaction Native中关注屏幕时正确更新状态变量?

递归类型别名的Typescript 使用

无法使用prisma中的事务更新记录

Typescript,如何从对象的对象中获取分离的类型

页面刷新返回404

虽然没有输入,但字符串长度为 54