Загрузка...
Загрузка...
Record — это utility тип в TypeScript, который позволяет создавать новый объектный тип с определенными ключами и значениями. Он предоставляет удобный способ задания типа для объектов, где ключи могут быть ограничены конкретными значениями, а значения имеют определённый тип.
Синтаксис:
Record<K, T>
K — тип ключей объекта (например, строки или числа).T — тип значений, которые соответствуют этим ключам.Тип Record позволяет определить, что объект должен иметь определённый набор ключей и значений, что делает его очень полезным при работе с заранее известными ключами и типами значений.
Создание объекта с предсказуемыми ключами и значениями:
Предположим, у нас есть список ролей в приложении, и мы хотим создать объект, где каждому ключу (роли) соответствует массив строк, представляющих права пользователя.
type UserRoles = "admin" | "user" | "guest";
type RolePermissions = Record<UserRoles, string[]>;
const rolePermissions: RolePermissions = {
admin: ["create", "edit", "delete"],
user: ["view", "edit"],
guest: ["view"],
};
UserRoles — это тип, представляющий роли пользователей (например, "admin", "user", "guest").Record<UserRoles, string[]> создаёт объект, где ключи — это строки, соответствующие ролям, а значения — массивы строк, которые содержат права доступа для каждой роли.Использование Record для создания объектов с динамическими ключами: Вы можете использовать Record, чтобы создавать объекты с динамическими ключами, например, на основе значений перечислений.
enum Status {
Active = "active",
Inactive = "inactive",
Pending = "pending",
}
type StatusMessage = Record<Status, string>;
const statusMessages: StatusMessage = {
[Status.Active]: "Your account is active.",
[Status.Inactive]: "Your account is inactive.",
[Status.Pending]: "Your account is pending approval.",
};
Status — это перечисление, которое представляет возможные статусы.Record<Status, string> создаёт объект, где ключи — это значения из перечисления Status, а значения — строки, представляющие сообщения для каждого статуса.