我刚刚开始使用angular 2和打字稿。从.ts文件导入类时,编译成功但抛出错误
不是功能_co.upchange
使用(click)
时。
Update.ts
export class Update {
name:string;
}
export class Changeable {
upchange (value) {
console.log(value);
}
}
update.component.ts
import { Component, OnInit } from '@angular/core';
import { Update } from './Update';
import { Changeable } from './Update';
@Component({
selector: 'app-update',
templateUrl: './update.component.html',
styleUrls: ['./update.component.css']
})
export class UpdateComponent implements OnInit {
update:Update = {
name:'Bhavya',
}
constructor() { }
ngOnInit() {
}
}
答案 0 :(得分:0)
此代码:
update:Update={
name:'Bhavya',
}
正在使用Update类的 SHAPE 定义一个对象……但这不是该类的实例。
如果计划在对象上调用方法,则需要创建对象的实例,如下所示:
update = new Update();
ngOnInit() {
this.update.name = 'Bhavya';
}
但是正如其他人所说,您正在调用的方法在Changeable类中吗?
考虑如下更改代码:
export class Update {
name:string;
constructor(name: string) {
this.name = name;
}
upchange(value) {
console.log(value);
}
}
然后您可以简单地执行以下操作:
update = new Update('Bhavya');
但是在调用upchange
函数的位置查看HTML会很有帮助。
更新
将函数定义为类中的方法,如上面的upchange
所示。请注意,我们不必不必使用function
关键字。
按如下所示调用函数:
this.update.upchange('somevalue');
使用 instance 变量而不是类名进行调用。如果要使用类名调用方法,请使用静态方法。但是请注意,静态方法不应保留状态。
有关详情,请参见:https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#821-instance-and-static-members