gpt4 book ai didi

typescript - 如何在 Typescript 中将类型转换为接口(interface)

转载 作者:行者123 更新时间:2023-12-04 08:49:09 27 4
gpt4 key购买 nike

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

I already read this QA here on StackOverflow, and don't think it fits well with the description I give in this Question.


快速示例,这种情况下 type Product定义为 type来自第三方 TypeScript 库。
# 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
    }
    更新:这种方法的原因纯粹是接口(interface)优先于类型。还要使现有代码保持其风格,无论采用何种第三方库。
    谢谢。

    最佳答案

    为了解决这个问题,我使用了在一个完全不相关的问题上找到的答案:Is it "Possible to extend types in Typescript?" .
    事实上,从 TypeScript 2.2 开始——interface 是可能的。扩展 type .

    There is an extensive thread on the difference between interface and type on this StackOverflow thread: 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 playground based on this same approach 上还有一个示例以及

    关于typescript - 如何在 Typescript 中将类型转换为接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64165061/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com