Тест · Операторы типов и утилиты · урок 2 из 8Тест — keyofЧто даёт keyof T для объектного типа?[A]Объединение имён свойств T в виде литеральных типов: для { name: string; age: number } это "age" | "name". С K extends keyof T функция принимает только эти имена, а T[K] даёт тип названного свойства.[B]Список имён свойств T, который программа собирает при запуске, как результат Object.keys: для { name: string; age: number } это ["name", "age"]. Поэтому справа от keyof нужен настоящий объект, а не тип.[C]Обычный string: имена свойств стираются вместе с остальными типами, поэтому для { name: string; age: number } это string. Параметр типа keyof T примет любую строку, и опечатку в имени tsc не заметит.[D]Объединение типов свойств T: для { name: string; age: number } это string | number. С K extends keyof T функция принимает любое значение этих типов, а T[K] даёт имя свойства.← Назадkeyof и доступ по ключуДалее →typeof в типах