繁体   English   中英

Typescript 将模板文字类型映射为索引类型

[英]Typescript Mapped Template Literal Types as Index Type

我正在使用 Typeorm 并希望强烈键入我的原始实体结果。

假设我知道我有一个名为 User 的 class

class User {
   id: string;

   name: string;

   age: number;
}

当在 typeorm 中获取原始实体时,这有时对具有性能问题的复杂查询很有用,结果将在返回的 JSON 片段中以选择的别名为前缀,如下所示:

{ u_id: "1", u_name: "Hello", u_age: 23; }

鉴于我知道用户 class 中的键,我如何使用模板文字类型来创建与返回的 JSON 对应的接口?

我试过的:

type RawUser = { [K in `u_${keyof User}`]: User[K] };

显然,这是行不通的,因为 K 是 u_id、u_name 等,它们无法索引用户类型。

答案是:

type RawUser = { [K in keyof User as `u_${K}`]: User[K] };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM