Комментарии 4
>> Вывод типов в дженериках
Немного дополню. Иногда вывод типа нужно сделать для экземпляров некоторого класса, например:
На помощь приходит простое решение, но почему-то про него забывают
Если кто подскажет как сделать такое без дженериков буду признателен
Немного дополню. Иногда вывод типа нужно сделать для экземпляров некоторого класса, например:
class User {
constructor(readonly lastName: string, readonly firstName: string) {}
}
// Хочется, чтобы IVANOV имел строго то, что написано в конструкторе (lastName - "Иванов", firstName - "Иван")
const IVANOV = new User("Иванов", "Иван");
// Вывод типа >> const IVANOV: User
// Не заработает const IVANOV = new User("Иванов" as const, "Иван" as const);
На помощь приходит простое решение, но почему-то про него забывают
// Тогда конструкции нужно видоизменить. Декларация конечно монстр
class User2<LN extends string, FN extends string> {
constructor(readonly lastName: LN, readonly firstName: FN) {}
}
const IVANOV2 = new User2("Иванов", "Иван");
// Вывод типа >> const IVANOV2: User2<"Иванов", "Иван">
Если кто подскажет как сделать такое без дженериков буду признателен
0
Использование ключевого слова infer. -> Одно упоминание infer, в первом абзатце, переименуйте заголовок
-1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Вывод типов в TypeScript с использованием конструкции as const и ключевого слова infer