【问题标题】:Search predefined instances of Typescript class搜索 Typescript 类的预定义实例
【发布时间】:2021-05-02 19:21:26
【问题描述】:

这是对this question 的补充

假设我有这个课程:

export class PizzaSize {
  static readonly SMALL  = new PizzaSize('SMALL', 'A small pizza');
  static readonly MEDIUM = new PizzaSize('MEDIUM', 'A medium pizza');
  static readonly LARGE  = new PizzaSize('LARGE', 'A large pizza');

  // private to disallow creating other instances of this type
  private constructor(private readonly key: string, public readonly value: any) {
  }

  toString() {
    return this.key;
  }
}

我可以通过这样做来访问属性的值:

console.log(PizzaSize.MEDIUM); 
console.log(PizzaSize.MEDIUM.value); 

但我需要一个函数来传递值,它会返回相应的类实例

例子:

searchInstancesOfClass('A small pizza');

我希望它返回 SMALL 实例;

我该怎么做?

【问题讨论】:

    标签: typescript types


    【解决方案1】:

    将所有要搜索的对象放入一个数组中,然后在该数组中搜索应该是一件简单的事情。

      static searchInstancesOfClass(value: string): PizzaSize | undefined {
        const staticPizzas = [
          this.SMALL,
          this.MEDIUM,
          this.LARGE,
        ]
        return staticPizzas.find(pizza => pizza.value === value)
      }
    

    Playground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 2020-02-03
      • 2019-06-10
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      相关资源
      最近更新 更多