【问题标题】:How to append properties to a generic type in Typescript?如何在 Typescript 中将属性附加到泛型类型?
【发布时间】:2020-09-30 20:03:54
【问题描述】:

我正在尝试将其他属性添加到泛型类型。这是我所拥有的:

type RequestData<T> = {
   name: string,
   data: {
      [K in keyof T]: T[K],
      isActive: boolean     // Typescript is not happy with this
   }
}

基本上,我的意图是将属性isActive 作为属性之一添加到T 的泛型类型中。但是 Typescript 抱怨我的所作所为。

我希望我的最终用法是这样的:

type TestData = { item: any[] };

const myFunc = <T>() => {
    const myData: RequestData<T> = {
        name: 'test',
        data: {
            item: ['a', 'b', 'c'],
            isActive: true,
        },
    };
}

TS Playground

如何将其他属性附加到泛型类型?

【问题讨论】:

    标签: typescript typescript-generics


    【解决方案1】:

    我不确定这是否是最好的方法,但它确实有效

    Playground

    type RequestData<T> = {
        name: string;
        data: {
            [K in keyof T]: T[K];
        } & {
            isActive: boolean;
        };
    };
    

    【讨论】:

    • 对不起,我刚刚更新了我的问题中的用法。我想我在函数中使用它时仍然有问题。这是操场代码:typescriptlang.org/play/…
    • @Carven 您的函数myFunc 不了解字段item,这是另一种类型的错误:)
    猜你喜欢
    • 2019-07-27
    • 1970-01-01
    • 2020-04-12
    • 2018-05-28
    • 2019-03-31
    • 2023-01-29
    • 1970-01-01
    • 2023-02-11
    • 2021-02-11
    相关资源
    最近更新 更多