2017-10-16 2 views
1

내 몽구스 문서에 Article 배열을 할당하려고 시도했지만 Typescript가 마음에 들지 않아이 경고/오류가 표시되지 않는 이유를 모르겠습니다. 지정할 수 있습니다. Typescript 인터페이스 [] vs [Inferface]

(간체) 내 몽구스 스키마와 인터페이스

는 :

const profile: Profile = values[0] 
const articles: Array<Article> = values[1] 
profile.articles = articles // Error/Warning pops up in this line 

[TS] 형식 '의 기사 []'양도 할 수 없습니다 :

interface Profile { 
    username: string, 
    articles: [Article] 
} 

interface Article { 
    index: number, 
    name: string, 
} 

// Mongoose model 
export interface IProfile extends Profile, Document { } 
const Article = new Schema({ 
    index: { type: Number, required: true }, 
    name: { type: String, required: true }, 
}, { _id: false }) 

const Profile = new Schema({ 
    username: { type: String, index: true }, 
    upcomingChests: { type: [Article] }, 
}, { timestamps: true }) 

export const Profile = model<IProfileModel>('IProfile', Profile) 

내 코드는 기사를 할당하려고 '[Article]'을 (를) 입력하십시오.
'Article []'유형에 '0'속성이 없습니다.

내 질문 :

왜 그것이 할당 할 수없는 그리고 [도움말] 조 및 제 [] 모두의 차이점은 무엇이라고 말합니까? 1 조 요소와 tuple 유형 :

+0

[Type 'Array \ [\]'을 '\ [Array \]'유형에 할당 할 수 없습니다 (https://stackoverflow.com/questions/40697919/type-array-is-not-assignable) -to-type-array) – jcalz

답변

2

[Article]는 다른 무언가를 의미한다.

Article[] 같은 유형의 Array<Article>을 사용하고 싶을 수 있습니다.

+0

Profile의 인터페이스를 변경하여'articles : Article []'이 정확한지 확인해야합니다. – kentor

+0

실제 데이터에 대해서는 말할 수 없지만 형식 불일치가 수정되어야합니다. – Jokester

관련 문제