javascript - 为什么以及如何使用 Angular2/Typescript 模型?

标签 javascript angular typescript

这是我的第一篇文章,我想就我似乎找不到任何信息的主题向您寻求帮助。

我一直在通过创建“SpotifyApp”的指南和 ng-book 学习 Angular 2,我遇到了创建艺术家和专辑的 typescript 类模型的最佳实践,将其导入我的组件并设置 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() {

  }

}

最佳答案

它只是一个对象。你已经注意到它可以有其他属性并且仍然有效,因为它是宽容的。一个明显的好处是代码完成和错误检测。在 visual studio code 中打开你的代码,你可以控制点击它的定义。

编辑:就像我说的那样,它可以让您完成代码。所以你的 ide 知道你什么时候开始输入 n 继续并填写名字。它为您提供了一个查找您应该期望的属性的地方。 您可以添加功能来做到这一点。给它更多的灵 active ,只是从 api 传递的内容。

关于javascript - 为什么以及如何使用 Angular2/Typescript 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43258876/

相关文章:

arrays - 数组中的 typescript 元素不可访问

typescript - 在 typescript 中使用泛型扩展接口(interface)

javascript - 如何检测客户端站点中的浏览器国家?

javascript - Replace\with/on 图片路径

javascript - AuthGuard 在星云中总是 false

angular - 无法从同一类中的另一个方法调用方法

javascript - 同一页面上的 JQuery 函数 POST 只能运行两次

javascript - ReactJS 函数与 toFixed 不一致

javascript - 如何在 Ionic 2 中调用外部 JavaScript 函数

reactjs - 如何在行中放置自定义按钮标签,使用 material-table 和 typeScript,他希望收到的 Prop 是什么?