В TypeScript есть возможность использовать generic для значений объекта. Для того чтобы создать generic для value объекта, вы можете использовать тип Record<K, V>
, где K
представляет собой тип ключа, а V
- тип значения.
Вот пример использования generic для value объекта:
type MyObject<T> = Record<string, T>; const obj: MyObject<number> = { foo: 10, bar: 20, }; console.log(obj['foo']); // выводит: 10 console.log(obj['bar']); // выводит: 20
В приведенном примере мы создали тип MyObject<T>
, который использует generic T
. Затем мы определяем переменную obj
, которая является объектом типа MyObject<number>
. Здесь number
- это generic аргумент для MyObject
, указывающий, что значения в MyObject
должны быть типа number
.
Вы можете использовать любой тип вместо number
в зависимости от ваших потребностей. Например, если вы хотите, чтобы значения в объекте были строками, вы можете использовать MyObject<string>
:
const obj: MyObject<string> = { foo: 'Hello', bar: 'World', }; console.log(obj['foo']); // выводит: Hello console.log(obj['bar']); // выводит: World
Таким образом, generic типы позволяют создавать объекты с динамическими значениями, которые могут быть адаптированы к различным типам данных.