Подпись вызова машинописного текста для функции в качестве аргумента

Использование Newtonsoft.Json: в вашем методе Global.asax Application_Start добавьте эту строку:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
1
задан Luca Somigli 24 February 2019 в 21:20
поделиться

1 ответ

Как указывает @jcalz в комментарии, метод defaultArguments возвращает либо function, либо string.

В тот момент, когда вы пишете код ...

console.assert(add2(10) === 19);

компилятор совершенно правильно отмечает ошибку, потому что в этот момент вы не знаете, какой из двух возможных типов add2 есть.

Если вы добавите дополнительную проверку типа в свой код, компилятор будет уверен, что вы работаете со значением типа function, и скомпилируется без ошибки.

if (typeof(add2) === 'function')) {
  console.assert(add2(10) === 19);
  console.assert(add2(10, 7) === 17);
  console.assert(isNaN(add2()));
} else {
  console.error(add2);
}
0
ответ дан Andrew Shepherd 24 February 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: