Tengo este objeto Lista, pero más tarde cambió la forma, necesito una propiedad de identificación adicional, pero ¿cómo no modificar la Lista?
interface List { name: string //without adding id here } interface ListData { type: string lists: List[] //how to include id here? } const data: ListData = { type: 'something', lists: [{ id: '1', name: 'alice' }, { id: '2', name: 'ja' }] }Puede ampliar la interfaz de List
interface List { name: string //without adding id here } interface ListId extends List { id: string } interface ListData { type: string lists: ListId[] } const data: ListData = { type: 'something', lists: [{ id: '1', name: 'alice' }, { id: '2', name: 'ja' }] }puede usar la palabra clave extends para extender la interfaz existente
interface ListWithId extends List { id: string; } o puede hacer que la identificación sea opcional en la interfaz de List existente, por lo que si ya la usó en algún lugar donde no afecte a nadie.
interface List { name: string; id?: string; } Nota : ? se utiliza para hacer que la propiedad sea opcional.
para agregar un enfoque alternativo a las respuestas anteriores
type ListWithId = List & {id: string}; interface ListData { type: string lists: ListWithId[] //how to include id here? }o, no es bonito pero funciona
interface ListData { type: string lists: (List & {id: string})[] //how to include id here? }