函数randomString():字符串

时间:2019-02-18 13:51:03

标签: angular typescript

我想在Angular应用程序中使用JavaScript代码。我尝试过:

export class MerchantNewComponent extends FormBaseComponent {

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

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

但是我得到这个错误:

enter image description here

有人知道我如何在Angular应用程序中使用此JavaScript代码吗?

2 个答案:

答案 0 :(得分:3)

使用TypeScript语法在类中声明一个方法:

export class MerchantNewComponent extends FormBaseComponent {

  getRandomStr(): string {
    // ...
  }
}

注释

  1. 建议在函数声明旁边添加函数的返回类型。
  2. 考虑将函数重命名为更具描述性,并表示该函数返回一个值。 (就像我在randomString上面所做的事情变成getRandomStr一样-这澄清了该函数的确切作用)

有关更多信息,请查看TypeScript handbook on classes


编辑:要指定应传递给方法的参数,请参见下文:

getRandomStr(randomLength: number): string {
  // Do something w/ the randomLength variable
  console.log(randomLength);
  // ...
}

答案 1 :(得分:1)

应为public randomString而不是function randomString

function可以在类外部使用,如果在内部使用,则它是类的方法,而不再是函数。

如果在组件内部使用它,则可以使用模板中的this.randomString()randomString()进行调用

您还可以使用吸气剂public get randomString() {...},然后在使用它时,只需将其命名为this.randomString