首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类调用方法

问类调用方法
EN

Stack Overflow用户
提问于 2019-02-18 21:56:29
回答 1查看 43关注 0票数 0

我想从一个类调用一个方法。我试过这个:

代码语言:javascript
复制
export class IdGenerator {

  public randomString(): string {
    const length = 40;
    const chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    let result = '';
    for (let i = length; i > 0; --i) {
      result += chars[Math.floor(Math.random() * chars.length)];
    }
    return result;
  }
}

我把它叫做这里:

代码语言:javascript
复制
import {IdGenerator} from '@utils/id.generator';

@Component({
  selector: 'app-merchant-new',
  templateUrl: './merchant-new.component.html',
  styleUrls: ['./merchant-new.component.scss']
})
export class MerchantNewComponent extends FormBaseComponent {

  formGroup = new FormGroup({
    login: new FormControl(IdGenerator.randomString(), [Validators.required, Validators.maxLength(40)]),
  });

  constructor(private merchantService: MerchantService,
              private router: Router) {
    super();
  }
}

但是我得到了错误的TS2339: Property 'randomString' does not exist on type 'typeof IdGenerator'.

调用方法和获取字符串的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-18 22:01:31

您已经将randomString定义为实例方法。所以,你得把它叫做

代码语言:javascript
复制
new IdGenerator().randomString()

如果要将其称为IdGenerator.randomString(),则应将此方法定义为静态的:

代码语言:javascript
复制
export class IdGenerator {

  static randomString(): string {
    ...
  }
}

参见工作示例这里

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

https://stackoverflow.com/questions/54755968

复制
相关文章

相似问题

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