microsoft / microsoft/TypeScript
int32 type returned by bitwise operators
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
Search Terms
bitwise operators, integer type, int32
Suggestion
Add an int32 subtype for number returned by TypeScript from bitwise operators.
function coerce(n: number): int32 {
return n | 0;
}
JavaScript bitwise operators coerce arguments to int32 and the return type of those operators will always be an int32.
This would not be a breaking change since int32 would be a subtype of number. Only bitwise operations would change to return int32s.
EDIT: I now recommend calling the type BitwiseInt32 so that user’s won’t see the type as a generic integer type.
Use Cases
Helps applications which are trying to take advantage of JavaScript implementations int32 optimizations. An application could ask for an int32 parameter to force coercion with n | 0.
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- This wouldn't change the runtime behavior of existing JavaScript code
- This could be implemented without emitting different JS based on the types of the expressions
- This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
- This feature would agree with the rest of TypeScript's Design Goals.
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 leggendo il comportamento proposto di int32/BitwiseInt32 e la specifica ECMAScript collegata sugli operatori bit a bit. Traccia il modo in cui TypeScript rappresenta i tipi restituiti dagli operatori bit a bit e controlla l’esempio coerce. Il lavoro è completo quando gli operatori bit a bit espongono il sottotipo proposto e restano assegnabili a number, con design e denominazione definiti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript, typescript
- Ambito
- compilers
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100