2016-08-08 4 views
3

Когда я скомпилирую свой проект с использованием машинописного текста, я использую параметр noImplicitAny, поэтому я не буду забывать указывать типы переменных и аргументов.Пропустить проверку типа неиспользуемых параметров

Однако иногда у вас есть аргументы, которые вы не используете. Например:

jQuery.ajaxTransport("+*", function (options: JQueryAjaxSettings) { 
    return { 
    abort: function (_, callback: JQueryCallback) { 

Я не заинтересован в первом аргументе функции прерывания, поэтому я игнорирую его, назвав его _.

Это правильный способ сделать это в TypeScript? Я не мог найти его в гиде. Я подозреваю, что это не так, потому что я могу назвать только один аргумент _.

Машинопись вызывает следующую ошибку:

error TS7006: Parameter '_' implicitly has an 'any' type.

Я мог бы просто ввести _:any, но это кажется немного излишним для аргумента, что я не использую.

+0

там нет такого понятия, как имя параметра по умолчанию. если вы включили noImplicitAny, вы должны указать тип для всего. – toskv

+0

Я в основном ищу эквивалент игнорируемого параметра Swift: http://stackoverflow.com/questions/24338045/what-is-the-usecase-for-ignored-parameters-in-swift – Zyphrax

+0

такой вещи нет в JS или машинопись. :) – toskv

ответ

-3

Невозможно пропустить нежелательные параметры в JavaScript или TypeScript.

+2

Да (с помощью префикса какого-либо параметра с подчеркиванием) ... https://github.com/Microsoft/TypeScript/issues/9458 – jugglingcats

+0

Я не знал об этом , Я думаю, что ответ Кита правильный. Я удалю свою, надеюсь, ОП изменит ее. :) – toskv

+0

@ Zyphrax вы можете отменить этот ответ, это неправильно? – toskv

8

У меня была такая же проблема. С помощью say express и routing вам часто требуется только параметр res.

router.get('/', function (req, res) { res.end('Bye.'); }); 

Ваша идея использования _ работает здесь, но я также нашел, что это тоже работает.

function (_1, _2, _3, onlyThis) { console.log(onlyThis); } 

Это кажется лучше, так как только делает «_» Я думаю, что мог бы сделать с помощью lodash/подчеркивания немного сбивает с толку, и это также делает очевидным, что это четвёртый параметр ваш заинтересован.

не
Смежные вопросы