Тест по TypeScript — Продвинутый уровень
Какое ключевое слово используется для извлечения типа внутри условного типа?
- infer
- extends
- in
- implements
Какой синтаксис соответствует mapped type?
- { [K in keyof T]: T[K] }
- { K in keyof T: T[K] }
- { K extends keyof T: T[K] }
- { [K: keyof T]: T[K] }
Как обозначить тип, исключающий значения одного типа из другого?
- type T = A & B
- type T = A | B
- type T = Exclude<A, B>
- type T = A + B
Какой utility type исключает указанные ключи из объекта?
- Pick<T, K>
- Omit<T, K>
- Exclude<T, K>
- Extract<T, K>
Какой тип даст never
в результате пересечения?
- string & number
- string | number
- any & string
- never | string
Какой из этих utility types не существует?
- Uppercase<T>
- Capitalize<T>
- CamelCase<T>
- Uncapitalize<T>
Какой utility type не входит в стандартный набор TypeScript?
- Parameters<T>
- ConstructorParameters<T>
- ReturnType<T>
- AsyncReturn<T>
Какой синтаксис некорректен в TypeScript?
- T extends U ? X : Y
- infer R
- keyof typeof
- interface X implements Y<T> {}
Какой синтаксис некорректен для mapped types?
- [K in keyof T]
- [P extends keyof T]
- [keyof T in P]
- [T in keyof P]
Какой тип не является частью стандартной библиотеки типов TypeScript?
- Record<K, T>
- Map<K, T>
- { [P in K]: T }
- { [key: K]: T }
Какое ключевое слово не используется в TypeScript?
- interface
- type
- mixin
- class
Какой модификатор доступа не существует в TypeScript?
- readonly
- private
- protected
- hidden
Какой синтаксис интерфейса некорректен?
- interface A {}
- interface A { [key: string]: any }
- interface A extends B {}
- interface A implements B {}
Какой дженерик с типом по умолчанию написан некорректно?
- [
- "
- i
- n
- t
- e
- r
- f
- a
- c
- e
- A
- <
- T
- =
- s
- t
- r
- i
- n
- g
- >
- "
- ,
- "
- t
- y
- p
- e
- A
- <
- T
- e
- x
- t
- e
- n
- d
- s
- s
- t
- r
- i
- n
- g
- =
- n
- u
- m
- b
- e
- r
- >
- "
- ,
- "
- t
- y
- p
- e
- A
- <
- T
- e
- x
- t
- e
- n
- d
- s
- s
- t
- r
- i
- n
- g
- =
- "
- a
- b
- c
- "
- >
- "
- ,
- "
- t
- y
- p
- e
- A
- <
- T
- =
- s
- t
- r
- i
- n
- g
- |
- n
- u
- m
- b
- e
- r
- >
- "
- ]
Какой generic constraint может привести к бесконечной рекурсии?
- function f<T extends U>()
- function f<T extends keyof U>()
- function f<T extends T>()
- function f<T extends any>()
Какой термин не используется в контексте шаблонных строк в TypeScript?
- template strings
- template literals
- string templates
- literal templates
Какой из шаблонных типов некорректен?
- `${T & U}`
- `hello ${T}`
- `a${T}b`
- `T + U`
Какой utility type некорректно применён к ключам?
- Exclude<keyof T, K>
- Extract<keyof T, K>
- Pick<keyof T, K>
- Omit<keyof T, K>
Что создаёт mapped type, где все свойства отсутствуют?
- { [K in keyof T]: never }
- Partial<Record<K, never>>
- Readonly<Required<T>>
- Pick<T, keyof T> & Omit<T, never>
Какой из этих типов может использовать себя в своем определении?
- conditional types
- recursive types
- template types
- utility types