Búsqueda de sitios web

javascript - ¿Cómo puedo definir los tipos de una variable objeto en Typescript?


Tengo esta variable de objeto en la clase a:

class a {
  abc = {
    def: number = 22  // won't work
  }
  ghi: number = 23; // works

..

¿Cómo puedo definir (de manera inline sin usar una interfaz) el tipo de la variable def que está dentro del objeto abc?

Intenté usar esta sintaxis, pero no la acepta.

Respuesta #1

La forma en que podría ser - es usar assert y declaración en línea:

class MyClass {
  abc = <{ def : number }>{
    def: 1,
  };  
}

Lo mismo, pero un poco más legible con una interfaz explícita

interface IMyObject{
  def : number 
}

class MyClass1 {
  abc = <IMyObject>{
    def: 1,
  };  
}

Compruébalo aquí

¿Y esto por qué?

class a {
  abc = {
    def: number = 22  // won't work
  }
  ghi: number = 23; // works

porque el ghi es el miembro/propiedad de la clase a - así que es justo así:

class MyClass {
  // standard way how to define properties/members of a class
  public obj: number;
  private other: string;
}

Respuesta #2

Solo para tu información. Sin usar una afirmación de tipo:

class a {
  abc : {def:number} = {
    def : 22  // Works
  }
  ghi: number = 23; // works
}

Nota: en tu caso es mejor dejar que el compilador infiera la firma de tipo por ti.