webhook/node_modules/eslint-plugin-import/docs/rules/no-deprecated.md

62 lines
1.4 KiB
Markdown
Raw Normal View History

# `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