Tengo una clase con muchas propiedades CSS, algo como esto:

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
  ...
}

Con él, estoy instalando muchos objetos, cada uno de ellos afecta el puerto de visualización de alguna manera.

La cuestión es que, cuando cambio la propiedad 'font_family' de un objeto, quiero que todos los demás se actualicen, independientemente de cuál fue alterado.

Entonces, si configuro ObjectA.font_family = 'arial', todos los demás objetos se actualizarán con font_family = 'arial'. Quería hacer esto con la mínima cantidad de funciones posible.
Todos ellos deben 'señalar' al mismo valor.

¿TS admite algo como esto? Si no es así, ¿cuál es la forma más sencilla de hacer esto?

0
CH4B 8 oct. 2019 a las 15:03

1 respuesta

La mejor respuesta

Puede utilizar una static propiedad: estas son propiedades de la clase en sí , en lugar de cada una de las instancias.

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
  ...
}

Dado que es una propiedad de clase , debe acceder a ella consultando la clase:

//read
let currentFontFamily = CustomDropdown.font_family;

//write
CustomDropdown.font_family = newFontFamily;

Verifique un pequeño ejemplo en TypeScript Playground : abra la consola del desarrollador y haga clic en "Ejecutar" para ver el resultado.

1
VLAZ 8 oct. 2019 a las 12:32