Closed thw0rted closed 4 years ago
There is an example in the tests that successfully generates a class with a generic template: https://github.com/englercj/tsd-jsdoc/blob/d75937645ed7eb7f162652594cd27913e7bcba95/test/fixtures/namespace_all.js#L7-L15
Welp, it's right there on the front page 😳
If you want to use supported ClosureCompiler features, you also need to specify this module as a pluginin your JSON configuration
Adding "plugins": [ "./node_modules/tsd-jsdoc/dist/plugin" ],
to my ts-conf.json
immediately resolved the issue. I'm sorry I missed that, and thanks for pointing me in the right direction, @englercj .
Should I open a second issue about supporting type parameter bounds and default values? Currently, whatever follows @template
is shoved into the type parameter verbatim, so I can actually write @template FuncType extends Function = Function
and it compiles to declare class GenericClass<SomeType extends Function = Function>
. This is what I want, but it's not correct per the Closure spec or Typescript's own interpretation of the @template
tag. Both of those support @template {Function} FuncType
, and as far as I can tell neither of them actually have a syntax for supplying a default value at all.
I'm trying to document generics and while the tags are correctly interpreted by Typescript directly,
tsd-jsdoc
is not applying type parameters in its output.I put together a simple repro and nothing I do there is able to get the output to include type parameters in the declaration.
Once this is worked out, I also wanted to see if there is supposed to be any syntax for specifying a default value for type parameters, as in
MyClass<T extends Function = Function>
. That isn't listed on the Closure documentation about Generics and it sounds like the TS team is still debating, so I could open a separate issue if need be.