首页 > 解决方案 > 如何使用“标记”类型来索引记录?

问题描述

这就是我标记标识符的方式:

type Id<Tag extends string> = string & {__tag: Tag};
type UserId = Id<'UserId'>;

但是当他们索引记录时我无法使用它们:

type Users = Record<UserId, User>;
type FirstName = {[k in keyof Users]: Users[k]['firstName']}[keyof Users];

它失败了:

TS2538:类型 'Id<"UserId">' 不能用作索引类型。

建议?

这里是游乐场。

标签: typescript

解决方案


推荐阅读