#typescript
Вопрос:
У меня есть эта функция, использующая typescript:
function more(argv: {a: number, b?: string}): number{
console.log( b)
return a
}
и я называю это так:
let arc = more({a: 5})
В консоли я получаю 10
. Я ожидал undefined
или какой-то ошибки.
Откуда берется число 10?
Ответ №1:
В этом случае вы регистрируете консоль «b» и возвращаете «a». Однако, похоже, вы хотите, чтобы консоль регистрировала «argv.b» и возвращала «argv.a». Поэтому я считаю, что на самом деле происходит то, что существует некоторая существующая переменная «b», определенная в другом месте и регистрируемая здесь. В любом случае, если вы обновите переменные в функции, как это сделал я, вы получите ожидаемый результат.
Комментарии:
1. нет, я не хотел регистрироваться
argv.b
, ноb
. Мне было любопытно узнать значениеb
, т. Е. присваивается ли значение параметрическому аргументу, который не указан. Но вы правы: в другом месте программы определены alet a
и alet b
.2. Моя точка зрения такова: у вашей функции нет аргументов с именем b. У него есть один с именем argv, у которого есть свойства с именами » a » и «b», но вы ничего не делаете с этим аргументом или его свойствами в этой функции.