2015-09-23 2 views
4

Я хотел бы иметь массив, содержащий строковые сообщения об ошибках. Вот код, который я придумал:Как я могу создать пустой массив строк в TypScript?

var errors: [string]; 
errors = []; 
Object.keys(response.data.modelState).forEach(function (key) { 
    errors.push.apply(errors, response.data.modelState[key]); 
}); 

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

errors = []; 

Тогда это дает мне сообщение об ошибке:

Тяжесть код файла Описание проекта Ошибка строки TS2322 Тип 'undefined []' не присваивается типу '[string]'. Свойство '0' - отсутствует в типе 'undefined []'. Код серьезности Описание Строка файла проекта Строка: Тип 'undefined []' не присваивается типу '[string]'.

ответ

7

Определение строки массива должно быть:

// instead of this 
// var errors: [string]; 
// we need this 
var errors: string[]; 
errors = []; 

Примечание: другой вопрос может быть ключевым параметром здесь

...forEach(function (key) {... 

Я предположил бы, что мы часто должны объявить два из них, потому что сначала очень часто значение, второй ключ/индекс

Object.keys(response.data.modelState) 
     .forEach(function (value, key) { 
    errors.push.apply(errors, response.data.modelState[key]); 
}); 

И даже, мы должны использовать функцию стрелки, чтобы получить родителя, как this

Object.keys(response.data.modelState) 
     .forEach((value, key) => { 
    errors.push.apply(errors, response.data.modelState[key]); 
}); 
+0

Спасибо очень много! –

+0

В случае, если это помогло в любом случае .. отлично! ;) Наслаждайтесь TypeScript –

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