在使用 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)还是类都无关紧要,因为您将它作为一种类型来使用。
class Hero { id: number; name: string }
或
interface Hero { id: number; name: string }
下面不关心Hero是类还是接口(interface)
let hero: Hero = { id: 1, name: 'me' }
interface
和 class
的区别在于 interface
仅供您使用,它不会被转译为 javascript。 class
可以,但您不能 new
interface
。
构造函数或没有构造函数,如果您新建
它那么它就是一个instanceof
。用这个再试一次
let hero = new Hero();
您的 instanceof
日志将为 true
,因为您确实使用关键字 new
创建了一个 Hero 实例。
关于javascript - typescript ,使用没有构造函数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47996399/