microsoft / microsoft/TypeScript
JS Typedef merged with default export alias behaves strangely
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
TypeScript Version: 3.4.0-dev.201xxxxx
Search Terms:
Code
in a TS file:
import Def from "./file.js"
type Q = Def;
console.log(Def);
with file.js:
const x = 12;
export {x as default};
/**
* @typedef {string | number} default
*/
with checkJs and allowJs both on, the hover text for Def is surprisingly correct:

however the console.log is marked as an error, stating:
'Def' only refers to a type, but is being used as a value here.
Expected behavior:
Since the quickinfo shows it's clearly a value (and a value is, in fact, exported), the default import should be usable as a value.
Actual behavior:
The default import is not usable as a value without error.
cc @sandersn
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le problème avec la configuration TypeScript 3.4.0-dev en utilisant les extraits .ts et .js fournis, avec checkJs et allowJs activés. Suivez la manière dont l’alias de l’exportation par défaut et le JSDoc typedef nommé default sont fusionnés, puis vérifiez que le Def importé est accepté dans console.log tout en conservant les informations de type affichées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Active
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 52/100