2016-01-30 2 views
2

Я новичок в машинопись и у меня есть интерфейс в машинописи вроде этого:Машинопись интерфейс для определения типа для моей модели

interface Model{ 
    class : String, 
    id: Number 
} 

и в моем классе модели, я использовал этот интерфейс, как это:

class MyModel{ 

    model: Array<Model> = [] 

    pushData(val){ 
     model.push(val) //error happens here 
    } 

} 

на компиляции машинописи, кажется, бросает ошибку:

error TS2345: Argument of type '{}' is not assignable to parameter of type 'Model'. 
    Property 'class' is missing in type '{}'. 

Я проверил значение val - это не что иное, как:

{ 
    class : "test", id : 123 
} 

который соответствует моему интерфейсу, то почему машинописный текст вызывает эту ошибку?

Машинопись версия 1.6.2

+0

Сообщение об ошибке содержит имя файла и строку номер ошибки. Указывает на какой-то код, который вы опубликовали, или мы должны догадываться, где это происходит? Можете ли вы опубликовать полный пример, который мы можем попытаться скомпилировать? Какую версию TypScript вы используете? – DCoder

+0

@DCoder: Изменен код. –

+2

Для начала функция 'pushData' должна использовать' this.model.push', а не просто 'model.push'. Как только я это исправлю, ваш код компилируется без каких-либо предупреждений на игровой площадке TypeScript. – DCoder

ответ

3

Может быть, так как вы не даете VAL типа это превращающего к любому типу, который является {}

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