I would like to mark a property (for example, qux
below) as deprecated:
/** @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 */
I should mention, I’d like to do this in a JSDoc comment, not using TypeScript.
Advertisement
Answer
According to Issue#131 over at tsdoc, you can actually use @deprecated
on properties, you just have to set it inside the object (works with JS as well).
For e.g.:
/** * Explain the interface ... */ export interface test { /** * Foo property */ Foo: string; /** * @deprecated Use {@link test.qux2} instead. */ qux: string; /** * qux2 property */ qux2: string; }
Results in:
In classes for e.g.:
/** * 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");
Results: