2017-04-20 147 views
0

我是新手稿。我正在嘗試使用接口作爲數組類型。我按順序構造我的字面對象,儘管我仍然得到這個錯誤:「接口」類型中不存在屬性?

類型'{id:number; title:string; image:string;詞:字符串; description:string; } []'不可分配爲鍵入'IWordList []'。
類型'{id:number; title:string; image:string;詞:字符串; description:string; }'不可分配爲鍵入'IWordList'。 對象字面量只能指定已知的屬性,'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:入門」課程。你是驚人的作家。繼續發佈Angular 2課程;我愛你的教學方式。 –

+0

非常感謝! – DeborahK

+0

請看看這個問題(http://stackoverflow.com/questions/43567722/typescript-angular2-rxjs-missing-property-but-its-already-exist)我試圖創建一個類似組件的產品 - 詳細信息來自課程。但是我的服務正面臨一個問題。提前致謝。 –

0

我有同樣的錯誤。它出現在我的構建手錶中,但不在Linter中,它可以檢測到這些錯誤。所以我決定重新開始構建,並得到一個新的錯誤,指向一個案例,我創建了一個沒有引發錯誤的屬性的對象(在你的情況下是「id」)。有趣的是,Linter錯過了這個實際的錯誤。我修復了這段代碼,以便「id」被定義,並再次開始構建。這次它沒有錯誤。

相關問題