不是功能Angular 2

时间:2019-01-24 18:34:56

标签: angular

我刚刚开始使用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() {
  }
}

1 个答案:

答案 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