| # `import/no-deprecated` |
| |
| Reports use of a deprecated name, as indicated by a JSDoc block with a `@deprecated` |
| tag or TomDoc `Deprecated: ` comment. |
| |
| using a JSDoc `@deprecated` tag: |
| |
| ```js |
| // @file: ./answer.js |
| |
| /** |
| * this is what you get when you trust a mouse talk show |
| * @deprecated need to restart the experiment |
| * @returns {Number} nonsense |
| */ |
| export function multiply(six, nine) { |
| return 42 |
| } |
| ``` |
| |
| will report as such: |
| |
| ```js |
| import { multiply } from './answer' // Deprecated: need to restart the experiment |
| |
| function whatever(y, z) { |
| return multiply(y, z) // Deprecated: need to restart the experiment |
| } |
| ``` |
| |
| or using the TomDoc equivalent: |
| |
| ```js |
| // Deprecated: This is what you get when you trust a mouse talk show, need to |
| // restart the experiment. |
| // |
| // Returns a Number nonsense |
| export function multiply(six, nine) { |
| return 42 |
| } |
| ``` |
| |
| Only JSDoc is enabled by default. Other documentation styles can be enabled with |
| the `import/docstyle` setting. |
| |
| |
| ```yaml |
| # .eslintrc.yml |
| settings: |
| import/docstyle: ['jsdoc', 'tomdoc'] |
| ``` |
| |
| ### Worklist |
| |
| - [x] report explicit imports on the import node |
| - [x] support namespaces |
| - [x] should bubble up through deep namespaces (#157) |
| - [x] report explicit imports at reference time (at the identifier) similar to namespace |
| - [x] mark module deprecated if file JSDoc has a @deprecated tag? |
| - [ ] don't flag redeclaration of imported, deprecated names |
| - [ ] flag destructuring |