Record: Mapping Keys to Value Types
Build dictionary-like types with Record .
Record: Mapping Keys to Value Types is a free TypeScript Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the TypeScript Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Welcome
Basic Record Syntax
type Roles = Record<'admin' | 'user' | 'guest', boolean>;
const access: Roles = { admin: true, user: true, guest: false };Record with string Keys
const headers: Record<string, string> = {
'content-type': 'application/json',
'authorization': 'Bearer token'
};Record for Lookup Tables
const statusLabels: Record<number, string> = {
200: 'OK',
404: 'Not Found',
500: 'Server Error'
};How Record Is Implemented
type Record<K extends string | number | symbol, V> = { [P in K]: V };Record vs Index Signature
// Equivalent:
type A = Record<string, number>;
type B = { [key: string]: number };Record with Union Values
type Config = Record<'development' | 'staging' | 'production', { url: string; debug: boolean }>;Partial Record
type OptionalConfig = Partial<Record<'debug' | 'verbose' | 'trace', boolean>>;Readonly Record
const CODES: Readonly<Record<string, number>> = { A: 1, B: 2 };Record for Grouping
function groupBy<T>(items: T[], key: keyof T): Record<string, T[]> {
return items.reduce((acc, item) => {
const k = String(item[key]);
(acc[k] ??= []).push(item);
return acc;
}, {} as Record<string, T[]>);
}Record with Enum Keys
enum Color { Red = 'RED', Green = 'GREEN', Blue = 'BLUE' }
const hexCodes: Record<Color, string> = {
[Color.Red]: '#FF0000',
[Color.Green]: '#00FF00',
[Color.Blue]: '#0000FF',
};Quick Check
Recap
Frequently asked questions
Is the “Record: Mapping Keys to Value Types” lesson free?
Yes — the full text of “Record: Mapping Keys to Value Types” is free to read here on the web, and the TypeScript Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the TypeScript Academy course, upgrade to CoddyKit PRO.
What will I learn in “Record: Mapping Keys to Value Types”?
Build dictionary-like types with Record . You practise TypeScript Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start TypeScript Academy?
No prior experience is required. TypeScript Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Record: Mapping Keys to Value Types” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this TypeScript Academy lesson?
Yes. Every TypeScript Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Partial and Required: Toggling Optionality
- Pick and Omit: Selecting Properties
- Record: Mapping Keys to Value Types
- Readonly, Exclude, Extract, NonNullable