microsoft / microsoft/TypeScript
Allow wrapped values to be used in place of primitives.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
``` ts
class NumberWrapper {
constructor(private value: number) {}
valueOf(): number { return this.value; }
}
var x = new NumberWrapper(1);
// The right-hand side of an arithmetic operation
// must be of type 'any', 'number' or an enum type.
console.log(2 + x);
```
It would be nice if an arithmetic operation could allow using the wrapped number because it's `valueOf()` method returns the expected primitive type.
This can be generalized to: if type `T` is expected, then a value that implements the following interface can be used.
``` ts
interface Wrapped {
valueOf(): T;
}
```
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, das arithmetische Beispiel im Issue zu reproduzieren und den Pfad der Typprüfung arithmetischer Operanden in TypeScript nachzuverfolgen; die Beschreibung nennt keine Quelldatei, keinen Test und keinen Einstiegspunkt. Erledigt ist die Aufgabe, wenn verpackte Werte mit einer valueOf()-Methode, die den erwarteten primitiven Typ zurückgibt, in den relevanten arithmetischen Operationen akzeptiert werden und dieses Verhalten durch Tests abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100