docs: add note about TypeScript in ESLint packages (#12222)
This commit is contained in:
parent
f1bc314c79
commit
ddb7e05f07
@ -97,25 +97,9 @@ module.exports = {
|
|||||||
$ ./node_modules/.bin/eslint yourfile.js
|
$ ./node_modules/.bin/eslint yourfile.js
|
||||||
```
|
```
|
||||||
|
|
||||||
## Known issues
|
## TypeScript
|
||||||
|
|
||||||
Flow:
|
While [`@babel/eslint-parser`](https://github.com/babel/babel/tree/main/eslint/babel-eslint-parser) can parse TypeScript, we don't currently support linting TypeScript using the rules in [`@babel/eslint-plugin`](https://github.com/babel/babel/tree/main/eslint/babel-eslint-plugin). This is because the TypeScript community has centered around [`@typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) and we want to avoid duplicate work. Additionally, since [`@typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) uses TypeScript under the hood, its rules can be made type-aware, which is something Babel doesn't have the ability to do.
|
||||||
|
|
||||||
> Check out [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype): An `eslint` plugin that makes flow type annotations global variables and marks declarations as used. Solves the problem of false positives with `no-undef` and `no-unused-vars`.
|
|
||||||
|
|
||||||
- `no-undef` for global flow types: `ReactElement`, `ReactClass` [#130](https://github.com/babel/@babel/eslint-parser/issues/130#issuecomment-111215076)
|
|
||||||
- Workaround: define types as globals in `.eslintrc` or define types and import them `import type ReactElement from './types'`
|
|
||||||
- `no-unused-vars/no-undef` with Flow declarations (`declare module A {}`) [#132](https://github.com/babel/@babel/eslint-parser/issues/132#issuecomment-112815926)
|
|
||||||
|
|
||||||
Modules/strict mode
|
|
||||||
|
|
||||||
- `no-unused-vars: ["error", { vars: local }]` [#136](https://github.com/babel/@babel/eslint-parser/issues/136)
|
|
||||||
|
|
||||||
Please check out [eslint-plugin-react](https://github.com/yannickcr/eslint-plugin-react) for React/JSX issues.
|
|
||||||
|
|
||||||
- `no-unused-vars` with jsx
|
|
||||||
|
|
||||||
Please check out [eslint-plugin-babel](https://github.com/babel/eslint-plugin-babel) for other issues.
|
|
||||||
|
|
||||||
## Questions and support
|
## Questions and support
|
||||||
|
|
||||||
|
|||||||
@ -46,3 +46,7 @@ Each rule corresponds to a core `eslint` rule and has the same options.
|
|||||||
- `@babel/no-unused-expressions`: handles `do` expressions
|
- `@babel/no-unused-expressions`: handles `do` expressions
|
||||||
- `@babel/object-curly-spacing`: handles `export * as x from "mod";` (🛠)
|
- `@babel/object-curly-spacing`: handles `export * as x from "mod";` (🛠)
|
||||||
- `@babel/semi`: Handles class properties (🛠)
|
- `@babel/semi`: Handles class properties (🛠)
|
||||||
|
|
||||||
|
## TypeScript
|
||||||
|
|
||||||
|
While [`@babel/eslint-parser`](https://github.com/babel/babel/tree/main/eslint/babel-eslint-parser) can parse TypeScript, we don't currently support linting TypeScript using the rules in [`@babel/eslint-plugin`](https://github.com/babel/babel/tree/main/eslint/babel-eslint-plugin). This is because the TypeScript community has centered around [`@typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) and we want to avoid duplicate work. Additionally, since [`@typescript-eslint`](https://github.com/typescript-eslint/typescript-eslint) uses TypeScript under the hood, its rules can be made type-aware, which is something Babel doesn't have the ability to do.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user