Как описать интерфейс TypeScript для объекта имена свойств которого являются id?

Подскажите пожалуйста как написать интерфейс для вот такого объекта. Буду безгранично благодарен.

import { v4 as uuidv4 } from 'uuid'


interface IData: {?}

const data: IData = {
    [uuidv4()]: {
        id: uuidv4(),
        name: 'something',
    },
    [uuidv4()]: {
        id: uuidv4(),
        name: 'something',
    },
}



Ответы (1 шт):

Автор решения: Neverm1ndo

Наверное как-то так,только не понятно, зачем вы 4 раза вызываете функцию uuidv4. Она же всегда будет возвращать разные id. Т.е у вас ключ объекта никогда не будет равен полю id этого объекта. Очень странно.

import { v4 as uuidv4 } from 'uuid'

interface IDataItem {
    id: string;
    name: string; 
}

interface IData {
  [key: string]: IDataItem;
}

const data: IData = {
    [uuidv4()]: {
        id: uuidv4(), 
        name: 'something',
    },
    [uuidv4()]: {
        id: uuidv4(),
        name: 'something',
    },
}
→ Ссылка