microsoft / microsoft/TypeScript

JSDoc type aliases aren't parsed or bound at the end of blocks

Abierto
#54,043 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Awaiting More Feedback Domain: JSDoc Suggestion
Lenguaje dominante
Go
Estrellas
111k
Forks
14.3k
Merge medio
1 d 19 h
PR fusionados (30 d)
117

Descripción

Bug Report

Followup to #54037 and #53624
This is not a regression, and fixing it would require

  • the parser to check for jsdoc before each close brace
  • the ast to store optional jsdoc on each close brace, and store the close brace on each block
  • the binder to visit each close brace to check for jsdoc to bind

So I think it's too expensive for a feature that nobody has noticed missing until recently.

🔎 Search Terms

JSDoc type alias ignored

🕗 Version & Regression Information
  • This is the behavior in every version I tried
💻 Code
// @filename: typedefAtEndOfBlock.js
// @checkJs: true
// @outdir: dist
// @declaration: true
function f() {
  /* @type {A} */
  var a = 2
  /** @typedef {string} A */
}
{
  /* @type {B} */
  var b = 2
  /** @typedef {string} B */
}
export class Class {
  /* @type {C} */
  c = 1
  /** @typedef {string} C */
}
const Dlass = class {
  /* @type {D} */
  d = 1
  /** @typedef {string} D */
}
🙁 Actual behavior

None of the typedefs are parsed or bound.

🙂 Expected behavior

The typedefs are parsed and bound.
(And none are visible outside their containers, which is not true for classes right now).

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 la reproducción en typedefAtEndOfBlock.js y sigue cómo parser, AST y binder gestionan JSDoc antes de las llaves de cierre. Compara el comportamiento descrito en #54037 y #53624. Se considera terminado cuando los typedefs se analizan y se enlazan dentro de sus contenedores, y se aborda el comportamiento documentado de visibilidad de class.

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

Evaluación

Stack tecnológico
javascript, typescript
Área
compilers
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.