microsoft / microsoft/TypeScript
In Javascript, `typeof x !== undefined ? t : f` should act like a declaration of `x` in the true branch
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.4k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
Search Terms:
existence of define typeof undefined
Code
// @noEmit: true
// @allowJs: true
// @checkJs: true
// @strict: true
// @Filename: a.js
if (typeof define !== 'undefined' && define.amd) {
define([], function() {
})
}
// also, nested
exports.storage = 'undefined' != typeof chrome &&
'undefined' != typeof chrome.storage ?
chrome.storage.local :
undefined;
Expected behavior:
The check type define !== undefined should cause the true branch of the conditional to act as if define were declared.
Actual behavior:
Cannot find name 'define'.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con la riproduzione in a.js e le relative impostazioni @allowJs, @checkJs e @strict, quindi esegui il type checker di TypeScript sui due pattern typeof. Traccia il modo in cui il checker gestisce i rami condizionali e i nomi non risolti. Il lavoro è completato quando entrambi gli esempi superano il controllo dei tipi senza un errore Cannot find name, preservando il comportamento esistente per i controlli annidati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 42/100