microsoft / microsoft/TypeScript
JS typedef merged with default export class behaves strangely
@sandersn ya está trabajando en esto.
Desde el 28/8/2026.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
TypeScript Version: 3.4.0-dev.201xxxxx
Search Terms:
Code
class Cls {
x = 12;
static y = "ok"
}
export default Cls;
/**
* @typedef {string | number} default
*/
with checkJs and allowJs on reports no errors, however on usage:
import Def from "./file.js"
type Q = Def;
console.log(Def);
the quick info is pretty comprehensive:

however the type usage is equal to string | number (okay, maybe that's reasonable, how are a typedef and a class even merging anyway), however there's an error on the value usage:
'Def' only refers to a type, but is being used as a value here
Expected behavior:
An error on the attempted merge (a class and a type alias should be overlapping in symbol flags domains) and for the value usage to resolve to the class, probably.
Actual behavior:
The incongruent behavior described above.
cc @sandersn
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.
Evaluación
Este issue todavía no se ha evaluado.