Typescript实现具有相同键但类型不同的接口

马蒂亚斯

我有一个界面

export interface Foo {
 a: string;
 b: string;
}

我现在想拥有另一个实现接口的所有键的类,但可以具有另一种类型:

  export class Bar implements keysof(Foo) {
    a: SomeNewType;
    b: SomeNewType2;
  }

打字稿可能吗?背景:我希望Bar班级的按键与之同步Foo

梅里恩·休斯(Meirion Hughes)

您可以使用键映射来实现。

export interface Foo {
  a: string;
  b: string;
}

type HasKeys<T> = {
  [P in keyof T]: any;
}

export class Bar implements HasKeys<Foo> {

}

这会抱怨Bar缺少ab但是如果您使用任何类型定义它们都可以。

export class Bar implements HasKeys<Foo> {
  a: number;
  b: object;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

多次实现相同的通用接口,该通用接口包含具有不同类型参数的属性

具有不同类型的可选键和strictNullChecks的Typescript接口类型

实现两个具有相同方法签名但返回类型不同的接口

是否可以要求两个不同的TypeScript接口具有相同的键但能够具有不同的值?

TypeScript:如何为具有许多相同类型的键和相同类型的值的对象创建接口?

具有相同类型属性的接口或类型的 Typescript 简写

解析具有相同键的不同值类型的json

TypeScript:具有相同形状的对象的不同类型

具有相同实现的接口的Spring声明

具有功能的Typescript接口。子类型不能作为参数用于实现接口

如何定义具有Key String索引但具有特定类型的已知键的TypeScript接口?

如何创建托管项目列表、实现接口但具有不同类型参数的类型?

实现接口,但具有不同的属性名称

实现Java接口时,确保“ Object o”参数具有相同的通用类型

TypeScript:如何创建类型或接口,该类型或接口是具有n个键之一或字符串的对象?

返回具有不同泛型类型的泛型接口实现

为什么允许具有不同交集类型参数的接口方法实现?

具有相同签名但在两个接口不同的返回类型的方法

如何仅收集类型中的键,该类型的对象具有某些特定键作为 Typescript 接口中的值?

具有函数返回类型的TypeScript接口

具有不同值字典的相同键

在C中实现2个具有相同类型和名称但参数不同的函数

TS如何解释具有相同命名函数属性但签名不同的类型的交集(与接口相同会产生错误)?

每个项目的键之间具有相同泛型的Typescript数组式类型

Java:扩展具有相同方法的类并实现接口

Typescript 实现了带有 57 个键的接口:spreadoperator 的使用?

带有接口类型键的字典,获取实现接口的键

具有不同方法名称的接口实现

go的地图哈希函数如何工作,以便具有“相同”值的不同类型导致不同的键?