Saltar al contenido
TS2315

    ↑↓ mover · ⏎ abrir · esc cerrar

    TS2315

    El tipo no es genérico

    Type 'Label' is not generic.

    Las palabras del propio compilador. Sin traducir — es la cadena que pegaste en el buscador.

    Se proporcionaron argumentos a un alias que no declara parámetros de tipo.

    Reproducción

    type Label = string
    
    type Bad = Label<number>

    La compilación afirma que esto emite exactamente este código.

    Por qué lo dice el compilador

    Los corchetes angulares instancian una declaración genérica. Un alias fijo como `Label = string` no tiene nada que sustituir, así que `Label<number>` no tiene más sentido que pasar un argumento a una constante.

    Arreglos

    1. 01
      type Label = string
      
      type NameLabel = Label

      Elimina el argumento de tipo cuando el alias sea fijo a propósito.

    2. 02
      type Label<T> = { value: T }
      
      type NumberLabel = Label<number>

      Declara un parámetro cuando el alias deba variar con su entrada.

    Conclusión

    La declaración decide si un tipo es genérico; los corchetes angulares en el uso no pueden convertirlo en uno.

    Adónde ir después

    Errores