繁体   English   中英

如何在Typescript中将类型转换为接口

[英]How to convert type to interface in Typescript

从类型化对象,是否可以将其转换为 TypeScript 中的接口?

我已经在 StackOverflow 上阅读了这个 QA ,并且认为它与我在这个问题中给出的描述不太吻合。

简单的例子,这种场景type Product被定义为type从第三方打字稿库。

# ProductFragmentOne is used to highligt possibility of composition(unions, etc)
type Product = ProductFragmentOne & { sku: string };

要将该产品集成到我们自己的系统中,可以通过扩展(联合)一个类型,如下例所示:

export type ProductSchema = Product & { 
  name: string;
}

我的问题是:

  • 有没有办法将我们的ProductSchema定义为interface ,而不是使用类型方法? 或者这甚至可能吗?
# Example of how the code may look
export interface ProductSchema{ 
  name: string;
  // do the magic to add Product properties here
}

更新:这种方法的原因纯粹是偏爱接口而不是类型。 也使现有代码保持其风格,无论采用何种第三方库。

谢谢。

为了解决这个问题,我使用了一个完全不相关的问题的答案:“是否可以在 Typescript 中扩展类型?” .

事实上,从 TypeScript 2.2 开始—— interface可以扩展type

在这个 StackOverflow 线程上有一个关于interfacetype之间区别的广泛线程: TypeScript: Interfaces vs Types

export interface ProductSchema extends Product{ 
  name: string;
}
# Where the Product is a type similar to
type Product = { SKU: string }

我正在寻找的“魔术”确实是extends运算符(或关键字)。 TypeScript 操场上还有一个基于相同方法的额外示例

暂无
暂无

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

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