這是我的第一篇文章,我想問你的主題的幫助,我似乎無法找到任何信息。爲什麼以及如何使用Angular2/Typescript模型?
我一直在學習Angular 2通過指南和ng-book創建「SpotifyApp」,並且我遇到了創建Artist和Album的typecript類模型的最佳實踐,將它導入到我的組件並設置HTTP結果請求該模型。
現在我沒有看到任何與常規數組的區別,我不知道爲什麼我這樣做,我似乎無法找到任何有關該主題的信息。它可以工作,但我看不到它的作用。我甚至試圖打破它,如下面的例子給它隨機的屬性,並沒有區別
我去了Angular官方文檔,我沒有看到任何區別,沒有經過在教程點的Typescript教程並沒有提及關於它的一切。所以我的問題是爲什麼我需要模型,我用它錯了嗎?我在應用程序中使用它?
artist.model.ts
import { Album } from './album.model'
export class Artist{
id: number;
name: number;
peackock: string;
genres: any;
albums: Album[];
}
album.model.ts
export class Album {
id: number;
}
Spotify的-app.service
@Injectable()
export class SpotifyAppService {
constructor(private http: Http) {
}
searchByTrack(query: string) {
let params: string = [
`q=${query}`,
`type=artist`
].join("&");
let queryUrl = `https://api.spotify.com/v1/search?${params}`;
return this.http.get(queryUrl).map(res => res.json());
}
}
Spotify的-app.component.ts
export class SpotifyAppComponent implements OnInit {
searchStr: string;
artist: Artist[];
constructor(private spotifyService: SpotifyAppService) { }
searchMusic(query: string):void{
this.spotifyService.searchByTrack(query)
.subscribe(res => {
this.artist = res.artists.items;
});
};
ngOnInit() {
}
}
我意識到它是對象,但我的問題仍然是它的作用?爲什麼我使用它?起初我認爲只有某些屬性可以傳遞給它,但事實並非如此。 –
@WIndWindstorm使用的型號B/C你想強類型的所有優點:在編譯時發現錯誤,代碼完成,清晰度爲開發商,等你用它二/三要構建/模塊化代碼。但是,當Typescript代碼編譯爲Javascript時,所有強類型規則都會出現在窗口中......所以在運行時,模型不會執行阻止您分配不屬於該類的屬性的事情。您可以在模型中添加getters/setters或方法來幫助執行這些操作... –
強類型的好處是什麼意思?因爲我沒有看到與正常數組有什麼不同?我只是宣佈這個對象我導入它,我可以分配任何我想要的值。那麼有什麼好處? –