</>
⌕
Mid #mapped-types#keyof#utility-types

Mapped types là gì? Modifier `+/-` và key remapping `as`

⚡ Trả lời nhanh

Mapped type tạo type mới bằng cách lặp qua các key: `{ [K in keyof T]: ... }`. Có thể thêm/bỏ modifier bằng `+`/`-` với `readonly` và `?`, và lọc hoặc đổi tên key với mệnh đề `as`. Hầu hết utility types (Partial, Readonly, Pick, Record) là mapped type.

Ví dụ

main.ts · sửa được
  • keyof T lấy union các key; K in ... lặp qua union đó; T[K] là kiểu value.
  • Modifier: -? biến optional thành bắt buộc (như Required), -readonly bỏ readonly, + là mặc định.
  • Key remapping (TS 4.1): mệnh đề as cho phép đổi tên (kết hợp template literal như get${Capitalize<K>}) hoặc lọc key bằng never.
  • Mapped type trên union/mảng/tuple dạng homomorphic (keyof T trực tiếp) giữ modifier và ánh xạ từng phần tử của tuple.
🃏 Ôn bằng flashcard