【发布时间】:2018-06-08 08:20:43
【问题描述】:
在使用 Angular 网站上的“英雄之旅”教程时,我发现了以下语法(很快):
class Hero {
id: number,
name: string,
}
const aHero: Hero = {
id: 1,
name: 'Superman'
}
console.log(aHero instanceof Hero); //false
这样做有什么意义?当我检查“aHero”的类型时,它只是一个普通对象而不是“Hero”类型。用构造函数初始化一个对象会更好吗?:
class Hero {
constructor(id: number, name: string) {}
}
【问题讨论】:
-
好问题。答案是本教程提倡一种不好的做法。
Hero应该是interface。 -
Todd Motto 有一个 great article 解释差异以及何时/为什么使用
interface与class -
你能用这段代码添加对这个部分的引用吗?
-
IMO 这对新手来说是一个非常糟糕的例子,已经在 github github.com/angular/angular/issues/21186 上报道过
-
好地方!这是一种不好的做法——在这些情况下应该使用接口。
标签: javascript angular class typescript constructor