microsoft / microsoft/TypeScript

`symbol` does not match interface

Aperta
#29,713 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Domain: lib.d.ts
Lingua principale
Go
Stelle
111k
Fork
14.4k
Merge medio
1g 19h
PR unite (30g)
117

Descrizione

TypeScript Version: playground and 3.3

Search Terms: symbol interface

Code

const sym: symbol = Symbol();

function f(arg: { constructor?: unknown }): void {
}

f(sym);

Expected behavior:
symbol is a non-nullish primitive, as such, it should be able to potentially match any interface.

Actual behavior:
Type error.

Playground Link: https://www.typescriptlang.org/play/#src=const%20sym%3A%20symbol%20%3D%20Symbol()%3B%0D%0A%0D%0Afunction%20f(arg%3A%20%7B%20constructor%3F%3A%20unknown%20%7D)%3A%20void%20%7B%0D%0A%7D%0D%0A%0D%0Af(sym)%3B

Related Issues: #29536 (discovered in relation to #28900), #1863, #24587

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo l'esempio fornito nel TypeScript Playground collegato e esamina le issue correlate per comprendere il comportamento di assignability previsto. Traccia la gestione da parte del compilatore dei valori simbolo rispetto all'interfaccia { constructor?: unknown }, quindi aggiungi un test di regressione e verifica che l'esempio superi il controllo dei tipi senza indebolire regole di tipizzazione non correlate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript
Ambito
compilers
Tipo di issue
Bug
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.