TS: Extensión de enumeración

TS: Extensión de enumeración

1. Cálculo de enumeración

  • Los miembros de la enumeración se pueden inicializar mediante expresiones de enumeración constante :

    enum E {
          
          
        None ,
        OK = 1 << 1,
        Read = 1 << 2,
        Write = 2 << 1,
        ReadWrite = Read | Write,
        Pending = "123".length
    }
    

2. Tipo de miembro de enumeración

  • Una vez enumerados los miembros de la enumeración, tienen una semántica especial;

  • Los miembros de la enumeración se convierten en tipos:

    enum E {
          
           A , B }
    interface A {
          
          
        type : E.A;
        value : number
    }
    
    let c : A {
          
          
        type : E.B,	//error , A接口的type属性的类型为E.A
        value : 1
    }
    
  • Las enumeraciones son objetos que realmente existen en tiempo de ejecución:

    enum E {
          
           X , Y}
    function foo(obj : {
          
          X : number}){
          
          
        return obj,X;
    }
    
    foo(E);		//ok,E是一个真实存在的对象,X他的一个属性,值为0。
    

4. Mapeo inverso de la enumeración

  • Además del valor de enumeración obtenido del nombre de enumeración, la enumeración también puede obtener el nombre de enumeración del valor de enumeración.

    enum E {
          
          X , Y}
    console.log(E[0])	// "X"
    

5. Enumeración constante

  • Para evitar la sobrecarga del código generado adicional y el acceso indirecto adicional a los miembros de la enumeración, se puede utilizar la constenumeración.

    const enum E{
          
          
        A = 1,
        B = 2 * A
    }
    
  • La enumeración constante solo puede utilizar expresiones de enumeración constante;

  • La enumeración constante se eliminará durante la fase de compilación y se reemplazará por el valor de la enumeración;

  • Enumeración externa: la enumeración externa se utiliza para describir la forma de un tipo de enumeración existente.

    • Existe una diferencia importante entre la enumeración externa y la enumeración no externa: en la enumeración normal, los miembros sin métodos de inicialización se tratan como miembros constantes.
    • Para enumeraciones externas no constantes, cuando no existe un método de inicialización, se considera calculado.
    declare enum E{
          
          
        A = 1,
        B , 
        C = 3
    }
    

Supongo que te gusta

Origin blog.csdn.net/yivisir/article/details/109560532
Recomendado
Clasificación