首页 > 解决方案 > TypeScript 扩展接口/类型的所有值类型

问题描述

给定一个已知键和值的接口,是否可以告诉 TypeScript 我想要一个类型,该类型具有与我的原始接口相同的所有键,并且值类型通过原始类型和另一种类型的联合扩展。描述所需行为的伪(可悲的是非功能性)TypeScript 代码:

type FancyCSSObject = { [key: keyof CSSObject]: CSSObject[key] | OtherType };

以上不是有效的 TypeScript,所以我的问题是,如何在有效的 TypeScript 代码中表达这一点?

标签: typescripttypesinterfaceextend

解决方案


在我完成发布之前,我意识到了这个问题的解决方案,但是看到它是一种没有完整记录的极端案例,我将分享我的解决方案,以防其他人需要这个:

type FancyCSSObject = {
  [key in keyof CSSObject]: CSSObject[key] | OtherType;
};

我接近解决方案。我希望这可以帮助别人。


推荐阅读