microsoft / microsoft/TypeScript

JS Typedef merged with default export alias behaves strangely

Ouverte
#32,366 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Bug Domain: JavaScript Needs Human Review
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:
image

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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.