Почему в Typescript выдает ошибку при определении выходного типа?
export function keys<T extends object>(obj: T): (keyof T)[] {
const currentKeys: string[] = [];
for (let key in obj) {
if (obj.hasOwnProperty(key)) currentKeys.push(key);
}
return currentKeys;
}
Выдает ошибку:
Type 'string[]' is not assignable to type '(keyof T)[]'. Type 'string' is not assignable to type 'keyof T'. Type 'string' is not assignable to type 'never'
Нужно чтобы на выходе был массив из ключей этого объекта, и хоть ключи и строки всегда, нужно проверить что такой ключ вобще есть в объекте
Источник: Stack Overflow на русском