microsoft / microsoft/TypeScript
"design:paramnames" metadata key
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
From https://github.com/Microsoft/TypeScript/pull/2589
A few notes on metadata:
- Type metadata uses the metadata key "design:type".
- Parameter type metadata uses the metadata key "design:paramtypes".
- Return type metadata uses the metadata key "design:returntype".
Can you please add support for a "design:paramnames" metadata key? It would return the design-time names of the arguments of a function
I can convert a function to string at runtime using Function.prototype.toString() and then use a couple of Regex to get the parameter names:
STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
ARGUMENT_NAMES = /([^\s,]+)/g;
But when a minifier/compressor is used the param names become "a", "b" ...
I would like to have a way to access the design-time names of the arguments of a function at run-time even after compression.
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
Das Issue nennt keine Dateien oder Tests. Beginne damit, die Emission der Decorator-Metadaten durch den Compiler und die bestehende Behandlung von design:type, design:paramtypes und design:returntype zu lokalisieren; ermittle anschließend den Umfang der Hinzufügung von design:paramnames und definiere Tests für die emittierten Argumentnamen, einschließlich des in der Anfrage beschriebenen Minifizierungsproblems.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, typescript
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100