#typescript
#typescript
Вопрос:
Мне нужно написать функцию, которая принимает массив кортежей, каждый кортеж состоит из имени и возраста. Функция должна возвращать только имена.
Итак, я написал это так:
type someTuple = [string, number]
function names(namesAndAges: someTuple[]) {
let allNames: string[]
allNames.push(namesAndAges.forEach( nameAndAge => nameAndAge[0]))
return allNames
}
Когда я вызываю его с помощью этого:
names([['Amir', 34], ['Betty', 17]]);
Я получаю эту ошибку:
type error: type error: Variable 'allNames' is used before being assigned.
Может кто-нибудь указать, что не так с этим кодом?
Ответ №1:
Вы не объявили allNames
, что это массив, поэтому измените его на это:
let allNames: string[] = []
Если вы хотите получить все имена в массиве, ваша функция должна быть такой:
type someTuple = [string, number]
function names(namesAndAges: someTuple[]) {
let allNames: string[] = []
namesAndAges.forEach( nameAndAge =>
allNames.push(nameAndAge[0])
)
return allNames
}
names([['Amir', 34], ['Betty', 17]]);
Комментарии:
1. Спасибо, я забыл об этом. Теперь я получаю эту ошибку: ошибка типа: аргумент типа ‘void’ не может быть присвоен параметру типа ‘string’
2. Идеально! Спасибо!
3. Рад вам помочь 🙂