(打字稿)使所有对象指向相同的值

时间:2019-10-08 12:03:38

标签: typescript

我有一个具有很多CSS属性的类,如下所示:

export class CustomDropdown {

  class_name: String
  name: String
  font_family: String = "Varela Round"
  border_color: String =  "#C0C0C0"
  speech_color: String = "#FFFFFF"
  font_color: String = "#1E1E1E"
  font_size_value: String
  radius_value: String
  ...
}

有了它,我实例化了许多对象,每个对象都以某种方式影响视口。

问题是,当我更改一个对象的'font_family'属性时,我希望所有其他对象都进行更新,而无论其位置已更改。

因此,如果我设置了ObjectA.font_family = 'arial',则其他所有对象都将用font_family = 'arial'更新。我想用尽可能少的功能做到这一点。
所有这些都应该“指向” 为相同的值。

TS支持这样的事情吗?如果没有,最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用a static property-这些是类本身的属性,而不是每个实例。

export class CustomDropdown {

  class_name: String
  name: String
  static font_family: String = "Varela Round"
  border_color: String =  "#C0C0C0"
  speech_color: String = "#FFFFFF"
  font_color: String = "#1E1E1E"
  font_size_value: String
  radius_value: String
  ...
}

由于它是一个 class 属性,因此您必须通过引用该类来访问它:

//read
let currentFontFamily = CustomDropdown.font_family;

//write
CustomDropdown.font_family = newFontFamily;

Check a small example on the TypeScript Playground-打开开发者控制台,然后单击“运行”以查看输出。