首页 > 解决方案 > 如何在 Typescript 中将属性附加到泛型类型?

问题描述

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

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游乐场

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

标签: typescripttypescript-generics

解决方案


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

操场

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

推荐阅读