TYPESCRIPT-如何在TYPESCRIPT对象的每个属性中允许更多类型?

TYPESCRIPT-如何在TYPESCRIPT对象的每个属性中允许更多类型?,typescript,object,interface,Typescript,Object,Interface,我的项目中有一个对象。以下是模式: IObject : { prop1: number; prop2: number; } 这是我想要的90%用法的类型。但有几个实例要求我也为每个属性返回一个字符串。因此,对于一些实例,我需要一个返回: object: IObjectWithStrings // Here I want to add string to each property as acceptable type. // Something like object: IObjec

我的项目中有一个对象。以下是模式:

IObject : {
  prop1: number;
  prop2: number;
}
这是我想要的90%用法的类型。但有几个实例要求我也为每个属性返回一个字符串。因此,对于一些实例,我需要一个返回:

object: IObjectWithStrings // Here I want to add string to each property as acceptable type.

// Something like
object: IObjects extends string
我该怎么做??我可以为此创建一个新的接口,但我更愿意使用原始接口并扩展它。谢谢

您可以使用泛型来实现这一点。在本例中,您可以定义一个基类型IOObject,其中T表示动态类型,如下所示:

type IObject<T> = {
  prop1: T;
  prop2: T;
}
您可以使用泛型来实现这一点。在本例中,您可以定义一个基类型IOObject,其中T表示动态类型,如下所示:

type IObject<T> = {
  prop1: T;
  prop2: T;
}

您可以从现有类型创建另一个类型:

type IObject = {
    prop1: number;
    prop2: number;
}

type IObjectString = {
    [K in keyof IObject]: string 
}

type IObjectStringOrOriginal = {
    [K in keyof IObject]: string | IObject[K]
}

您可以从现有类型创建另一个类型:

type IObject = {
    prop1: number;
    prop2: number;
}

type IObjectString = {
    [K in keyof IObject]: string 
}

type IObjectStringOrOriginal = {
    [K in keyof IObject]: string | IObject[K]
}

谢谢我想到了。问题是,该对象来自DTO,不应该更改为接受不同的值,而只是因为FE需要接受带有are字符串的默认值。也不应该是泛型。谢谢你。。我会投票的,但我不能接受正确答案。谢谢。我想到了。问题是,该对象来自DTO,不应该更改为接受不同的值,而只是因为FE需要接受带有are字符串的默认值。也不应该是泛型。谢谢你。。我会投票,但我不能接受正确的说法。