Тест по TypeScript — Обобщенные типы (Generics)
Для чего используются generics в TypeScript?
- Позволяет создавать повторно используемые компоненты с типами, определяемыми при использовании
- Позволяет использовать только тип any
- Служит для работы с числовыми значениями
- Объявляет переменные
Как обозначается generic-параметр?
- <T>
- [T]
- (T)
- {T}
Какие идентификаторы часто используются в качестве generic-параметров?
- T
- U
- K
- Все перечисленные
Как объявить функцию с generic-параметром T?
- function<T>() {}
- function T() {}
- function generic() {}
- type<T>() => {}
Какой из следующих вариантов корректно определяет generic-функцию?
- function identity<T>(arg: T): T
- function identity(arg: any): T
- function identity<T>(arg: T): any
- function identity(arg): T
Для чего используется ключевое слово extends
в generic-параметре?
- Позволяет задать ограничения для generic
- Определяет тип переменной
- Фильтрует значения
- Используется только с массивами
Как задать generic T, ограниченный ключами типа U?
- <T extends keyof U>
- <T keyof U>
- <T includes U>
- <T in U>
Где можно использовать generics в TypeScript?
- type
- interface
- class
- Все варианты подходят
Как правильно объявить generic-интерфейс?
- interface Box<T> { value: T }
- interface<T> Box { value: T }
- Box<T>: interface { value: T }
- interface Box<T> = { value: T }
Какие конструкции используют generics для массивов?
- Array<T>
- T[]
- ReadonlyArray<T>
- Все перечисленные
Как создать generic-класс в TypeScript?
- Type<T>
- class Generic<T>
- typeof T
- InstanceType<T>
Как задать интерфейс с двумя generic-параметрами?
- interface Pair<A, B> { first: A; second: B; }
- interface Pair<A B> {}
- interface Pair<A|B> {}
- interface Pair<A&B> {}
Как объявить generic-функцию, принимающую только string или number?
- function<T extends string | number>(arg: T): T
- function<T: string | number>(arg: T)
- function(arg: string | number)
- function<T>(arg: T): string | number
Какие формы объявления generic-массивов допустимы?
- T[]
- Array<T>
- ReadonlyArray<T>
- Все перечисленные
Какова основная цель использования generics?
- Generic помогает сохранить тип
- Generic всегда равен any
- Generic игнорируется при компиляции
- Generic — это тип переменной
Что верно о generic-параметрах с типами по умолчанию?
- можно указывать значение по умолчанию
- можно использовать только с функциями
- generic-параметры не работают с классами
- generic-параметры должны быть только строками
Как правильно задать значение по умолчанию для generic?
- function test<T = string>()
- function test(T = string)
- function test<T extends string = string>()
- function test<string>()
Можно ли комбинировать generic с типами по умолчанию и ограничениями?
- Да
- Нет
- Только в интерфейсах
- Только в функциях
Какие типы часто используют generics?
- Mapped types
- Conditional types
- Utility types
- Все перечисленные
Как задать generic, который принимает только объект?
- T extends object
- T in keyof U
- T implements U
- T = keyof U