61 lines
1.4 KiB
Markdown
61 lines
1.4 KiB
Markdown
# `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
|