Description
Pete and I were discussing ways that TSDoc can handle merged declarations, and wanted to summarize a couple ideas here.
Say you have a scenario where you want to export the same API with a different name. You could have something like
export { X as Y } from '...'
where Y is an enum. For certain reasons, we are considering splitting it up into something like the following instead:
export enum Y {
...
}
export type X = Y;
export const X = Y;
We likely still want both X's to be documented together. We have two tags in mind to solve this: @documentAs
and @partOf
.
@documentAs
would be used to tell the documentation system how to present this API, for example grouping it under the "Enums" section even though it isn't technically an enum.
@partOf
would be used to group the second definition with the first.
Using the example above, we might have something like the following:
/**
* Another name for {@link Y}.
* {@documentAs enum}
*/
export type X = Y;
/**
* {@partOf (X:type)}
*/
export const X = Y;
I'm curious to see if anyone else has thought about this much and/or has any other ideas or suggestions.