microsoft / microsoft/TypeScript

TS2377 not reported when 'super' is called conditionally

Abierto
#45,377 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Bug Domain: classes
Lenguaje dominante
Go
Estrellas
111k
Forks
14.4k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

Bug Report

The TS2377 error is reported when the constructor of a derived class does not contain a call to 'super'. However, it is not reported when only some branches contain the call but not others.

🔎 Search Terms

TS2377 super class missing branch

🕗 Version & Regression Information
  • This is the behavior in every version I tried, and I reviewed the FAQ for entries about Classes
⏯ Playground Link

Playground link with relevant code

💻 Code
class CustomError extends Error {
  constructor(value: string | number) {
    if (typeof value === 'string') {
      super(value)
    } else {
      // oops, no super() call!
    }
  }
}
🙁 Actual behavior

TypeScript does not report any errors for the above code.

🙂 Expected behavior

TypeScript should report TS2377 for the above code, since 'super' isn't called in every branch.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el ejemplo enlazado de Playground y confirma el diagnóstico TS2377 que falta cuando no todas las ramas condicionales llaman a super. Sigue el tratamiento que hace el compilador de TypeScript de los constructores de clases derivadas y de las ramas de control de flujo, y añade cobertura que demuestre que se informa TS2377 a menos que todas las ramas llamen a super.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
typescript
Área
compilers
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.