Javascript Angular2模型类中的方法格式
我有一个基本模型类(不是组件): 现在,我将尝试在如下组件中使用此模型:Javascript Angular2模型类中的方法格式,javascript,class,angular,typescript,Javascript,Class,Angular,Typescript,我有一个基本模型类(不是组件): 现在,我将尝试在如下组件中使用此模型: feline: catModel = {name: 'simba' }; …编译时出现以下错误: 类型“{name:string}”不可分配给类型“catModel”。类型“{name:string}”中缺少属性“getName” 一旦从catModel中删除getName函数,它就可以正常工作,为什么不让我添加一个方法?这应该可以解决您的问题 export class catModel { name:strin
feline: catModel = {name: 'simba' };
…编译时出现以下错误:
类型“{name:string}”不可分配给类型“catModel”。类型“{name:string}”中缺少属性“getName”
一旦从catModel中删除getName函数,它就可以正常工作,为什么不让我添加一个方法?这应该可以解决您的问题
export class catModel {
name:string; //<-----here
constructor(public name: string) { }
getName: string {
return this.name.toUpperCase();
}
}
导出类catModel{
name:string;//这是因为Typescript使用了
TypeScript结构类型系统的基本规则是,如果y
至少具有与x
相同的成员,则x
与y
兼容
“相同的成员”表示属性和方法。如果您考虑一下这个推理,它就非常有意义。通过键入CarModel
,您可以向任何使用它的人保证它的行为将类似于CarModel
。如果您的对象文字中没有getName
,那么它就不能像它那样是CarModel
我不遵守合同
阅读上面的第二个链接。这是一个很好的参考文件
可能不是你文章中主要关注的问题,但显而易见的解决方案是只构建一个类的实例newcarmodel('simba')
export class catModel {
name:string; //<-----here
constructor(public name: string) { }
getName: string {
return this.name.toUpperCase();
}
}