dsherret / ts-nameof

nameof in TypeScript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support nameof.full<Array<T>>() to "Array<T>"

deveitrust opened this issue · comments

In documentation:

nameof.full<Array<MyInterface>>();
Transforms to:
"Array";

How can i get it work and transform into:
"Array<MyInterface>"
?

Need to think about this more, but right now the only way to do it is to do:

`${nameof(Array)}<${nameof(MyInterface)}>`

The reason this isn't done by default is because c# doesn't do this with nameof.


Basically whatever solution is chosen need to ensure there's still a way to not include type arguments.

Need to think about this more, but right now the only way to do it is to do:

`${nameof(Array)}<${nameof(MyInterface)}>`

The reason this isn't done by default is because c# doesn't do this with nameof.

Thank you for the fast response, actually your solution will work but with some improvement (because Array is generic interface it require parameter to be passed like:
${nameof(Array<void>)}<${nameof(MyInterface)}>

In anyway it is not elegant way to make it work, so hope you will add new feature, it will help a lot.
Thank you!

No problem! Yeah, maybe something like nameof.fullWithArgs<Array<MyInterface>>()?

Ooops.. you're right. I messed up that example in other ways too. Should be:

`${nameof<Array<void>>()}<${nameof<MyInterface>()}>`

No problem! Yeah, maybe something like nameof.fullWithArgs<Array<MyInterface>>()?

Ooops.. you're right. I messed up that example in other ways too. Should be:

`${nameof<Array<void>>()}<${nameof<MyInterface>()}>`

Yes please, it would be great, and will save tons of time and help to write elegant ts code.
If it is not possible to extend nameof.full functionality to support arguments, then you could create separate function like
nameof.fullWithArgs<Array<MyInterface>>()
or
nameof.all<Array<MyInterface>>()
or
nameof.complete<Array<MyInterface>>()
or with any other naming.

Thank you!