2016-04-01 5 views
2

Я получаю ошибки в машинописных текстах при написании базовых функций javascript ES2015. например Я получаю следующее сообщение об ошибке для не объявления типа везде:Ошибки машинописного текста как предупреждения

SRC \ приложение \ component.ts (44,18): ошибка TS7006: Параметр «а» в «любой» тип неявно имеет.

src \ app \ component.ts (44,21): ошибка TS7006: Параметр 'b' неявно имеет тип «any».

src \ app \ component.ts (45,20): error TS7006: Параметр 'p' неявно имеет тип «any».

src \ app \ component.ts (45,23): ошибка TS7006: Параметр «n» неявно имеет тип «any».

«проблема» функция является функцией ES2015, как это:

this.filters = this.items 
    .map(x => x.someProperty) 
    .reduce((p,n) => p.concat(n), []) 
    .sort((a, b) => {/* sort someway */}) 
    .reduce((p, n) => {/* do something */}, []) 

Мне нравится readabilty этой функции, и я знаю, что это работает просто отлично. Если мне нужно добавлять тип везде, он побеждает цель синтаксиса синтаксиса.

Я понял, что Typcript является надмножеством ES2015, но все, что я пишу отчеты как ошибка (не предупреждение), если я не укажу каждый отдельный тип. Это немного раздражает, и по какой-то причине ошибки разбивают мой компилятор.

Это считая. Мне нравится писать новый код с сильными типами, и мне нравится получать предупреждения. Просто некоторые из них в некоторых функциях были бы хороши отключить проверки.

Есть ли возможность объявить функцию, которая игнорирует правила, или я должен переписать весь мой JavaScript таким образом?

+3

вы пробовали настройки ' "noImplicitAny": false' в настройках TSconfig компилятора? – Amid

+0

Вы только что спасли мне бесчисленные часы! Благодарю. Пожалуйста, ответьте, чтобы я согласился. – chriskelly

+0

Добро пожаловать. – Amid

ответ

6

Try установка «noImplicitAny» ложь в настройках компилятора TSconfig:

{ 
    "compilerOptions": { 
     "noImplicitAny": false 
    } 
} 
0

Только в случае, если кто-нибудь здесь ищет ответ о том, как получить эти функции работают с сильными типами ...

Попробуйте преобразовать в правильный тип, а затем запустите функцию карты. Что-то вроде этого:

export interface IMyInterface { 
    someProperty: string; 
} 

Затем вы можете импортировать и использовать так:

const items = this.items as IMyInterface[] 
this.filters = items 
    .map(x => x.someProperty) 
Смежные вопросы