2017-04-23 5 views
1

안녕하세요 저는 Typesctipt 및 Angular2를 처음 사용합니다. 컴파일러는 "wordListId"가 존재하지 않는다는 이유 이해가 안 :Typescript - 속성이 없습니다.하지만 이미 있습니다.

재산권 'wordListId'유형에 존재하지 않는 'IWordList'.

이벤트 및 코드 자동 완성 기능이 있음을 보여줍니다. Image

WordlistsdataService.ts

import { Injectable, OnInit } from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import { Observable } from 'rxjs/Observable'; 
import { IWordList } from './IWordlist'; 
import 'rxjs/add/operator/map'; 

@Injectable() 
export class WordlistsdataService implements OnInit { 

    private url :string = 'src/app/wordlists/wordlists.json'; 
    constructor(private http : Http) { } 

    getWordLists() : Observable<IWordList[]> { 
    return this.http.get(this.url) 
        .map((response : Response) => <IWordList[]>response.json()) 
    } 

    getWordList(id : number) : Observable<IWordList>{ 
    return this.getWordLists().map((wordLists : IWordList[]) => wordLists.find(p => p.wordListId === id)); 
    } 

    ngOnInit(){ 
    } 

} 

IWordList.ts (인터페이스)

export interface IWordList{ 
    wordListId : number, 
    title : string, 
    image : string, 
    words : string, 
    description : string, 
} 

wordlists.json

[ 
    { 
      "wordListId" : 1, 
      "title" : "Animals", 
      "image" : "/src/app/images/wordlists/animals_background.jpg", 
      "words" : "cat,elephant,cow,duck", 
      "description" : "sdadasd" 
     }, 
     { 
      "id" : 2, 
      "title" : "Jobs", 
      "image" : "/src/app/images/wordlists/jobs_background.jpg", 
      "words" : "engineer,farmer,artist,programmer", 
      "description" : "sdadasd" 
     } 
] 
+0

'OnInit'을 구현하는 서비스는 무엇입니까? 나는 아무것도하지 않는다고 생각한다. –

+0

이것이 확실하지 않다면 JSON의 두 번째 객체에 실제로 'wordListId' 속성이 없습니다. 또한'.map (wordLists : IWordList []) => wordLists.find (p => p.wordListId === id))'를 확인하십시오.'; 'map' 콜백의 첫 번째 인자는 배열 전체가 아니라 현재 배열의 값이어야합니다. 이를 확인하려면 다음을 참조하십시오. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map?v=example –

+0

그런 콜백 매개 변수 유형을 지정하지 마십시오. 안전하지 않습니다. –

답변

0

나는이 오류가 웹팩에서 오해의 소지가있다 생각합니다. 첫 번째 오류를 처리 한 다음 다시 컴파일하고 오류를 해결해야합니다. 나는 당신의 주어진 코드에서 어떤 것도 잘못 보이지 않는다.