microsoft / microsoft/TypeScript
The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.ts(2363)
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
Suggestion
The following code errors:
const x: Number = 5;
const y = 5 - x;
With this:
The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.ts(2363)
Which is super confusing because it is a number. But I didn't realize the problem was the first letter capitalization. Number vs number.
🔍 Search Terms
right-hand side of an arithmetic
✅ Viability Checklist
My suggestion meets these guidelines:
- [v] This wouldn't be a breaking change in existing TypeScript/JavaScript code
- [v] This wouldn't change the runtime behavior of existing JavaScript code
- [v] This could be implemented without emitting different JS based on the types of the expressions
- [v] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
- [v] This feature would agree with the rest of TypeScript's Design Goals.
⭐ Suggestion
Would be nice if there was an error during the assignment, is Number also a number? Another option is error 2363 could mention this potential issue. E.g.
The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. Not 'Number' .ts(2363)
And replace 'Number' with whatever type was actually found.
📃 Motivating Example
const x: Number = 5;
const y = 5 - x;
Minor typos should have a clear error message.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, Diagnostic 2363 im TypeScript-Compiler und die Tests zu finden, die Fehler bei arithmetischen Operationen abdecken. Bestätige, wie der gemeldete Operandentyp ausgewählt wird, und aktualisiere anschließend das Verhalten der Diagnostic so, dass ein Typ wie 'Number' identifiziert wird, und ergänze Tests für das motivierende Beispiel.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100