microsoft / microsoft/TypeScript
JSDoc type aliases aren't parsed or bound at the end of blocks
Nadie ha tomado este issue todavía.
- 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
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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