2017-04-20 10 views
0

私はTypescriptを初めて使用しています。私は配列の型としてインターフェイスを使用しようとしています。私はリテラルオブジェクトを順番に構造化していますが、まだこのエラーがあります。"Interface"タイプのプロパティは存在しませんか?

タイプ '{id:number;タイトル:文字列;イメージ:文字列;単語:文字列; 説明:文字列。 } [] 'はタイプ' IWordList [] 'に割り当てられません。
タイプ '{id:number;タイトル:文字列;イメージ:文字列;単語:文字列; 説明:文字列。 } 'はタイプ' IWordList 'に割り当てられません。 オブジェクトリテラルは既知のプロパティのみを指定し、 'id'はタイプ 'IWordList'に存在しません。

場合は、 'ID' については、それ自体ではありませんが、それは私がどんなaddtioalプロパティを追加した場合、私は同じエラーを取得

IWordList.ts

export interface IWordList{ 
    id : number; 
    title : string; 
    image : string; 
    words : string; 
    description : string; 
} 

であることに注意してくださいwordlistsdata.service.ts

import { Injectable } from '@angular/core'; 
import { IWordList } from './IWordlist'; 

@Injectable() 
export class WordlistsdataService { 

    constructor() { } 

    private allWordLists : IWordList[] = 
    [ 
     { 
      id : 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" 
     } 

    ] 

    public getWordList() : IWordList[]{ 
    return this.allWordLists; 
    } 

    public getOneWordList(id : number) : string[] { 
    return 
    } 
} 
+0

このデータを使用するコンポーネントコードはどのように見えますか? – Alex

+0

[playground](https://www.typescriptlang.org/play/)でエラーを再現できません。使用しているタイスクリプトのバージョンは何ですか? –

答えて

0

はこれで試してみてください。

export interface IWordList{ 
    id ?: number; 
    title : string; 
    image : string; 
    words : string; 
    description : string; 
} 

?オペレーターは、物事を任意にすることができます。

+0

動作しませんでした。 –

0

私はあなたのコードをPlunkerにコピーしましたが、うまくいきました。ここに私のコードを見ることができます:https://plnkr.co/edit/sxcYl5v5jBlfzZ31fHLd?p=preview

あなたもそこから実行することができます参照してください。

ああ...しかし、このツールはので、ここでAppModuleです...あなたは上記のそれを持っているにもかかわらず...私はコードを貼り付けている必要があります

@NgModule({ 
    imports: [ BrowserModule ], 
    declarations: [ App ], 
    providers: [ WordlistsdataService ], 
    bootstrap: [ App ] 
}) 
export class AppModule {} 
+0

ありがとう、今回は自分のコードを変更しました。代わりに、私はローカルjsonファイルからデータを読みます。途中で、Pluarsightのコース「Angular 2:Getting Started」が大好きでした。あなたは驚異的な作家です。投稿2つのコースを維持する;私はあなたの教え方を愛しています。 –

+0

ありがとうございました! – DeborahK

+0

この質問を見てください(http://stackoverflow.com/questions/43567722/typescript-angular2-rxjs-missing-property-but-its-already-exist)私は製品に類似したコンポーネントを作成しようとしましたが、コースからの詳細。しかし私は私の奉仕の細部に直面しています。前もって感謝します。 –

0

私は同じエラーが発生しました。それは私のビルドの時計に現れていましたが、それらのエラーを検出するLinterでは表示されませんでした。そこで、私はビルドを再開することに決めました。新しいエラーが発生しました。エラーを投げていたプロパティを持たないオブジェクトを作成した場合を指しています。興味深いことに、リンターは実際のエラーを逃していました。このコードを修正して "id"を定義し、ビルドをもう一度開始しました。今回はエラーなしで作業しました。

関連する問題