提问者:小点点

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


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

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

举个简单的例子,在这个场景中,< code>type Product被定义为第三方TypeScript库中的< code>type。

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

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

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

我的问题是:

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

更新:这种方法的原因纯粹是接口优先于类型。也使现有的代码保持其风格,不管第三方库采用。

谢谢。


共1个答案

匿名用户

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

事实上,从 TypeScript 2.2 开始,接口可以扩展一个类型

在这个StackOverflow线程上,接口类型之间的区别有一个广泛的线程:TypeScript:接口与类型

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

我所寻找的“魔术”实际上是扩展运算符(或关键字)。还有一个基于相同方法的TypeScript游乐场示例