Почему keyof IItem возвращает string | number?
Довольно специфичное поведение, которое я никак не могу побороть...
interface IItem {
[key: string]: string;
}
type t = keyof IItem; // string | number
Ответы (1 шт):
Автор решения: Taicutsun
→ Ссылка
В JavaScript, даже если ты используешь число в качестве ключа объекта (например, obj[0]), оно автоматически преобразуется в строку ("0"). Поэтому TypeScript учитывает это и предполагает, что ключом может быть как строка, так и число.
