Me gustaría marcar una propiedad (por ejemplo, qux a continuación) como obsoleta:
/** @typedef {object} Foo @property {string} bar @property {symbol} qux - How to deprecate it? @deprecated @property {symbol} qux2 - Doesn't work @property {symbol} qux3 @deprecated - This marks the whole of Foo as deprecated */Debo mencionar que me gustaría hacer esto en un comentario JSDoc, sin usar TypeScript.
Por lo que sé, la etiqueta @deprecated solo se puede usar para desaprobar cualquier cosa que no sea un símbolo completo
Siguiendo los documentos jsdoc, esta es la única forma en que puede usar @deprecated
/** * @deprecated since version 2.0.0 */ function old() { }De acuerdo con el problema n. ° 131 en tsdoc, en realidad puede usar @deprecated en las propiedades, solo tiene que configurarlo dentro del objeto (también funciona con JS).
Por ejemplo:
/** * Explain the interface ... */ export interface test { /** * Foo property */ Foo: string; /** * @deprecated Use {@link test.qux2} instead. */ qux: string; /** * qux2 property */ qux2: string; }Resultados en:
En clases por ejemplo:
/** * Class description ... */ class User { /** * Holds user's name */ name = ""; /** * Holds user's surname */ surname = ""; /** * @deprecated Holds user height */ height = 0; /** * constructor */ constructor(name, surname) { this.name = name; this.surname = surname; } } const me = new User("Arslan", "Sohail Bano");Resultados: