microsoft / microsoft/TypeScript

Using declarations like a statement leads to strange bugs.

Ouverte
#62,896 7 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Bug Domain: check: Control Flow Help Wanted
Langage dominant
Go
Étoiles
111k
Forks
14.3k
Merge moyen
2 j 4 h
PR mergées (30 j)
132

Description

### 🔎 Search Terms

function declaration statement

### 🕗 Version & Regression Information

v 5.9.3

### ⏯ Playground Link

https://www.typescriptlang.org/play/?target=99#code/JYMwBAFALgTgrgUwJRgG4EMZgB5gLxgAMA3ALABQAxgPYB2AztQDYIB0T1A5hNksWAHoB1ANYUKIalggsoYYPiL8FAHjABmZQGotKDFgBWi4GSp1GLdlwgGUQhDBhT5tMDQC2AB2AsAXGCNgejA4egQAEzAAIwRJGARohGBaTjB0enpgTloAGjBaajAHJyxksHhaKGB3BLA68XJQSFhEFBA4WkoqujAQCBQAbwBfCX6hAqLHZzKPbxYwKpq8qLg5YunXCsWEfwBJV3pYYC6wd2pwhJoLvPbO7oY3dFc6JgBPRLALyiZMCLS5KDUTxgFioBBMMAbTIXNLRDiUERgIA

### 💻 Code

```ts
if (true) var x = 0;
console.log(x); //ok

for (let i = 0; i < 3; i++) var j = i;
console.log(j) //error in compile: j is used before being assign, no error in runtime

if (true) function f() {}
f()//no error in compile time, but error in runtime: In strict mode code, functions can only be declared at top level or inside a block
```

### 🙁 Actual behavior

-

### 🙂 Expected behavior

-

### Additional information about the issue

The questions above was raised only in academic purpose. I understand that there are no real use cases to apply code above.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par le TypeScript Playground lié et reproduisez les trois exemples de déclarations de l’issue, en comparant les diagnostics du compilateur au comportement à l’exécution. L’issue ne précise pas de résultat attendu ; déterminez donc si le correctif prévu consiste en un diagnostic, une modification du code généré ou une sémantique JavaScript documentée avant d’identifier la partie pertinente du compilateur et les tests.

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é
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

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