microsoft / microsoft/TypeScript
JSDoc: @inheritDoc disregards optionality of parameters from parent class method
@sandersn ci sta già lavorando.
Dal 4/3/2020.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
TypeScript Version: 3.8.3
Search Terms: inheritDoc optionality jsdoc
Code
A conceptual example of JSDoc-annotated ES6 classes I'm generating d.ts definitions for
class Base {
/**
* @abstract
* @param {Array<import("./Layer.js").default>} [opt_array] Array of layers (to be
* modified in place).
* @return {Array<import("./Layer.js").default>} Array of layers.
*/
getLayersArray(opt_array) {
return abstract();
}
}
class Derived extends Base {
/**
* @inheritDoc
*/
getLayersArray(opt_array) {
return [];
}
}
Expected behavior:
TypeScript to transpile this to something resembling this
declare class Base {
/**
* @abstract
* @param {Array<import("./Layer.js").default>} [opt_array] Array of layers (to be
* modified in place).
* @return {Array<import("./Layer.js").default>} Array of layers.
*/
getLayersArray(opt_array?: any[]): any[];
}
declare class Derived extends Base {
/**
* @inheritDoc
*/
getLayersArray(opt_array?: any): any[];
}
Actual behavior:
The optionality specifier is lost on Derived.getLayersArray
declare class Base {
/**
* @abstract
* @param {Array<import("./Layer.js").default>} [opt_array] Array of layers (to be
* modified in place).
* @return {Array<import("./Layer.js").default>} Array of layers.
*/
getLayersArray(opt_array?: any[]): any[];
}
declare class Derived extends Base {
/**
* @inheritDoc
*/
getLayersArray(opt_array: any): any[];
}
Playground Link:
Related Issues:
EDIT: In the original ES6 example, the class Derived didn't actually extend Base which led to the possibility I may have submitted an invalid report. Fixing the code sample and re-running the playground with the updated example ES6 code showed the problem to still persist. Code sample in this issue and playground link have been updated.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Valutazione
Questa issue non è ancora stata valutata.