Dev Highlights

Доки по разработке

This project is maintained by teniryte

Дженерики в интерфейсах

Принципы

Пример

interface Form<T> {
  errors: {
    [K in keyof T]?: string;
  };
  values: T;
}

type LoginForm = {
  email: string;
  password: string;
};

const form: Form<LoginForm> = {
  errors: {
    email: 'Неверный адрес',
    // age: '...' // Ошибка: ключа нет в LoginForm
  },
  values: {
    email: 'teniryte@gmail.com',
    password: 'charmed',
  },
};

Практика