2016-05-27 4 views
0

мне нужно собрать некоторые ошибки для нескольких полей, поэтому структура в целом выглядит следующим образом:ES6 Карта типа псевдоним не работает

{ 
    name: { 
    errors: ['error one', 'error two'] 
    }, 
    age: { 
    errors: ['error three', 'error four'] 
    } 
} 

То, что я хотел сделать, это ввести вещи в машинописном, так что я сделал следующее:

interface FieldErrors { 
    errors: string[] 
} 

type ErrorsBag = Map<string, FieldErrors>; 

К сожалению, когда я использую new ErrorsBag() компилятор дает мне error TS2304: Cannot find name 'ErrorsBag' в то время как он определен прямо выше. Когда я использую его без псевдонима типа (просто new Map<string, FieldErrors>()), он отлично работает.

Любые подсказки, почему это происходит?

ответ

2

всякий раз, когда я использую новый ErrorsBag()

type не создает переменную это только создает тип для системы типа для целей аннотаций типа. some docs

+0

Awww, snap ... Поэтому я могу использовать его, например. , но внутренне все еще нужно использовать 'new Map ...', правильно? –

+0

Yup 100% прав – basarat

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