Аргумент типа 'T' не может быть назначен параметру типа 'number' - PullRequest
0 голосов
/ 05 марта 2019

Я не понимаю, если <T> - это число в моем случае, почему его нельзя присвоить параметру типа номер?Если я изменю тип n на number или any (очевидно), он все равно будет работать.

Ошибка:

enter image description here

Код:

const dropFoo = <T>(arr: T[], n: T): T[] => {
  return _.drop(arr, n)
};
const drop = dropFoo<number>([1, 2, 3], 1);
console.log(drop);

1 Ответ

1 голос
/ 05 марта 2019

Потому что T может быть чем угодно, а не просто числом.drop однако ожидает, что его вторым аргументом всегда будет число.Вы должны ограничить его числами только с <T extends number>, и тогда универсальный код вообще не будет полезен (обычно его здесь нет).

...