microsoft / microsoft/TypeScript
"is not a constructor" should be detected in compile time as "used before its declaration."
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.2.2
This repository demonstrates that I run in to the issue in ts@next.
https://github.com/qballer/tsbug
Search Terms:
constructor, lexical scope, run time error vs compile time
Code
const b = getB()
function getB() {
// will throw C is not a constructor in runtime
return new C() // **
}
// Will generate: Class 'C' used before its declaration.
// const instanceOfC = new C()
class C {}
Expected behavior:
Should generate: Class 'C' used before its declaration.
Actual behavior:
Explodes in runtime with 'is not a constructor' error.
Playground Link:
Playground
Repo
Related Issues:
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
Commencez par le code de reproduction du dépôt qballer/tsbug lié et par l’exemple TypeScript Playground, puis comparez le diagnostic existant pour const instanceOfC = new C() avec le cas getB(). C’est terminé lorsque le compilateur signale "Class 'C' used before its declaration" pour l’appel du constructeur au lieu d’autoriser l’échec à l’exécution "is not a constructor".
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100