Тест · Дженерики · урок 2 из 10Тест — зачем дженерикиЧто такое дженерики в TypeScript и зачем они нужны?[A]Обобщённая функция упаковывает каждое значение в объект-обёртку, которая при запуске хранит имя его типа, а JavaScript читает это имя и выбирает нужную ветку кода. Так одна функция служит разным типам, но обобщённый вызов медленнее обычного, и в горячих циклах его избегают.[B]Обобщённая функция объявляет параметр типа T, и каждый вызов заполняет его настоящим типом; обобщёнными бывают и классы, и типы. Код служит разным типам и сохраняет точный: first<T>(xs: T[]): T | undefined для number[] даёт number | undefined, а any тип теряет.[C]Дженерик — другая запись any: first<T>(xs: T[]): T | undefined и first(xs: any[]): any проверяются одинаково, потому что tsc сразу отбрасывает угловые скобки. Поэтому first([1, 2]) всегда даёт any, а T — пометка для читателя.[D]Обобщённая функция принимает только встроенные примитивы string, number и boolean, и tsc сам выбирает один из них при каждом вызове. Свои объектные типы и классы на место T не встают, поэтому для каждого из них приходится вручную писать отдельную перегрузку.← НазадОбобщённые функцииДалее →Как выводится T