microsoft / microsoft/TypeScript
"design:paramnames" metadata key
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests. Start by locating the compiler's decorator metadata emission and existing handling for design:type, design:paramtypes, and design:returntype; then determine the scope of adding design:paramnames and define tests for the emitted argument names, including the minification concern described in the request.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100