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