Назад к вопросам
Middle+
9
/* Напишите тип MyReadonly - делает все поля только для чтения */ type User = { id: number name: string } type MyReadonly<T> = any const user: MyReadonly<User> = { id: 1, name: "John" } user.name = "Jane"
Компании, где спрашивали
М.Видео/эльдорадо
Ответ от нейросети
sobes.tech AI
Тип MyReadonly<T> можно реализовать с помощью mapped types в TypeScript, добавив модификатор readonly ко всем полям типа T:
// Делает все свойства типа T только для чтения
type MyReadonly<T> = {
readonly [P in keyof T]: T[P]
}
// Пример использования
type User = {
id: number
name: string
}
const user: MyReadonly<User> = { id: 1, name: "John" }
// Ошибка: нельзя изменять readonly свойства
user.name = "Jane" // Ошибка компиляции
Таким образом, MyReadonly создает новый тип, где все поля исходного типа помечены как readonly, что предотвращает их изменение после инициализации.