Добавление соответствующие аннотации типов для определённый функции. Включая аннотации для всех аргументов и типа возвращаемого значения
Мне дона задача - "В редакторе кода есть еще одна функция, использующая остальные параметры. Функция addPower(p, ...numsToAdd),, складывает pth степеней всех последующих аргументов. Таким образом, вызов addPower(2, 3, 4)возвращает 25, поскольку 3 в квадрате плюс 4 в квадрате равно 25. (Здесь мы используем оператор возведения в степень **.)
Добавьте соответствующие аннотации типов для этой функции. Включите аннотации для всех аргументов и типа возвращаемого значения."
function addPower(p, ...numsToAdd){
let answer = 0;
for(let i = 0; i < numsToAdd.length; i++){
answer += numsToAdd[i] ** p;
}
return answer;
}
Я сделал таким образом.
function addPower(p: number[], ...numsToAdd: number[]){
let answer = 0;
for(let i = 0; i < numsToAdd.length; i++){
answer += numsToAdd[i] ** p;
}
return answer;
}
Выводит вот такую ошику.
index.ts:38:33 - error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
38 answer += numsToAdd[i] ** p;
~
Found 1 error.
Правильно - ли я всё делаю? Объясните мне!
Ответы (1 шт):
Автор решения: Не быть рабом на Руси
→ Ссылка
Ошибка заключается в том, что в первый аргумент не массив, а число.
Как верно подметил @nörbörnën.
function addPower(p: number, ...numsToAdd: number[]){
let answer = 0;
for(let i = 0; i < numsToAdd.length; i++){
answer += numsToAdd[i] ** p;
}
return answer;
}
console.log(addPower(2, 2, 2));