使用Babel eslint解析进行打字稿转换

时间:2020-06-23 13:13:11

标签: typescript babeljs eslint babel-eslint

在将ESLint引入现有的Typescript代码库后,我遇到了一些解析错误。

我已修复了大多数皮棉错误,但all answers解析器会抛出很多这样的错误:

babel-eslint

我认为这是因为 23:32 error Parsing error: Unexpected token, expected "," 21 | return state.set( 22 | 'callsInProgress', > 23 | (state.callsInProgress as any).filter(i => i !== action.payload) | ^ 24 | ); 25 | } 26 | case actions.API_RESET: { 无法理解类型转换babel

我如何通过解析器获取此信息?

我的babel配置如下:

as any

1 个答案:

答案 0 :(得分:3)

自己有一个正在使用 babel slint typescript 的项目。

我建议您停止使用eslint-babel,而改为使用@typescript-eslint /

typescript-eslint是由Tslint (现已弃用)的开发人员启动的项目。它完美地完成了打字稿代码。

这是我的eslint安装的npm软件包的示例:

"@typescript-eslint/eslint-plugin": "^2.34.0",
"@typescript-eslint/parser": "^2.34.0",
"eslint": "^5.16.0",
"eslint-plugin-import": "^2.21.2",
"eslint-plugin-jsx-a11y": "^6.3.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-react": "^7.20.0",

我的.eslintrc的示例:

module.exports = {
  root: true,
  parser: '@typescript-eslint/parser',

  plugins: [
    '@typescript-eslint',
    'eslint-plugin-node',
  ],

  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
  ],

  parserOptions: {
    "ecmaVersion": 2020
  },

  rules: {
    "comma-dangle": ["error", {
      "arrays": "always-multiline",
      "objects": "always-multiline",
      "imports": "always-multiline",
      "exports": "always-multiline",
      "functions": "always-multiline",
    }],
  },

  env: {
    es6: true,
    browser: true,
    node: true,
  },

  parserOptions: {
    project: './tsconfig.json',
    tsconfigRootDir: __dirname,
  },

  globals: {
    "global": false,
    "Promise": false,
  },
};

注意:我不知道eslint-babel是否可以与@typescript-eslint兼容,也许可以,并且您可以同时使用两者。