/ Gists / Utility type: Record
On gists

Utility type: Record

Typescript

index.ts Raw #

/*
Record<Keys, Type>
Keys může být string, number, symbol nebo union těchto typů.
Type může být jakýkoli typ.

Kdy Record využít
Když chcete zajistit, aby objekt měl přesnou strukturu s předem definovanými typy klíčů a hodnot.
Pokud například potřebujete typově bezpečně definovat mapování mezi hodnotami (např. slovníky nebo konfigurace).
*/

const scores: Record<string, number> = {
    Alice: 10,
    Bob: 20,
    Charlie: 30,
};

type Person = 'name' | 'age' | 'email';
const personInfo: Record<Person, string> = {
    name: 'Alice',
    age: '30',
    email: 'alice@example.com',
};

type Task = {
    title: string;
    completed: boolean;
};
type ProjectTasks = Record<string, Task>;
const projectStatus: ProjectTasks = {
    'Task 1': { title: 'Design UI', completed: true },
    'Task 2': { title: 'Implement backend', completed: false },
    'Task 3': { title: 'Write tests', completed: false },
};