首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不是函数角2

不是函数角2
EN

Stack Overflow用户
提问于 2019-01-24 18:34:56
回答 1查看 51关注 0票数 0

我刚刚开始使用角形2和打字记录。当我从.ts文件导入类时,编译成功,但抛出一个错误

不是函数_co.upchange

当使用(click)时。

Update.ts

代码语言:javascript
复制
export class Update {
  name:string;
}

export class Changeable {
  upchange (value) {
    console.log(value);
  }
}

update.component.ts

代码语言:javascript
复制
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() {
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-24 18:41:11

此代码:

代码语言:javascript
复制
 update:Update={
 name:'Bhavya',
 }

是用Update类的SHAPE定义一个对象.但它不是类的一个实例。

如果计划调用对象上的方法,则需要创建对象的实例,如下所示:

代码语言:javascript
复制
update = new Update();

  ngOnInit() {
    this.update.name = 'Bhavya';
  }

但是,正如其他人所说,您正在调用的方法是在可变类中吗?

考虑按以下方式修改代码:

代码语言:javascript
复制
export class Update {
  name:string;

  constructor(name: string) {
    this.name = name;
  }

  upchange(value) {
    console.log(value);
  }
}

然后,您可以简单地这样做:

代码语言:javascript
复制
update = new Update('Bhavya');

但是看到您正在调用upchange函数的HTML将是有帮助的。

更新

将函数定义为类中的方法,如上面的upchange所示。注意,我们不必使用function关键字。

按以下方式调用该函数:

代码语言:javascript
复制
this.update.upchange('somevalue');

使用实例变量(而不是类名)调用它。如果要使用类名调用方法,请使用静态方法。但请注意,静态方法不应保留状态。

有关更多信息,请参见此:https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#821-instance-and-static-members

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54353319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档