Что это значит, когда TsLint говорит, что callSignature должен иметь typedef.

У меня есть функция в моем коде:

networkStop = (action: string = null) => {
    this.action[action] = false;
    this.net = false;
    this.netd = false;
}

Я получаю сообщение об ошибке TsLint:

Message 4   TsLint: expected callSignature to have a typedef.

Может кто-нибудь объяснить, что это значит?


person Community    schedule 23.08.2014    source источник


Ответы (3)


«Отсутствует определение типа» См.: https://github.com/palantir/tslint/blob/master/src/rules/typedefRule.ts для получения подробной информации. По сути, отсутствует некоторая аннотация (для функции, потому что callSignature).

Вероятно, исправление (явно укажите тип возвращаемого значения):

networkStop = (action: string = null):void => {
    this.action[action] = false;
    this.net = false;
    this.netd = false;
}
person basarat    schedule 23.08.2014
comment
Можете ли вы сказать мне, что поставить :any после () то же самое, что и пустота? В этом примере он ничего не возвращает, так как я могу это указать? Спасибо - person ; 23.08.2014
comment
Не то же самое. Но any совместим с void, то есть any может взять все, даже void. Я бы использовал void в этом случае;) - person basarat; 23.08.2014
comment
Для пустоты я просто ввожу :void вместо :any или есть специальный синтаксис? - person ; 23.08.2014
comment
это было полезно для меня - person Alejandro Gonzalez; 12.12.2020
comment
Как использовать это для функции получения? - person Rigin Oommen; 11.05.2021

Чтобы избежать ошибки сборки. в файле tslint.json напишите такой код:

"typedef": [
  false,
  "call-signature"
],

Эта строка кода в tslint.json не требует возвращаемого типа метода.

person Shashikant Pandit    schedule 17.11.2020
comment
это не ответ на этот вопрос - person chachan; 05.04.2021

В моем случае решение заключается в добавлении комментария

// tslint:disable-next-line:typedef

перед строкой ошибки

person Roman Bondar    schedule 07.04.2021