停止eslint阻止打字稿的Non-null断言运算符吗?

时间:2019-09-12 14:54:33

标签: typescript eslint

所引用的意外令牌为!,即非null断言运算符。我怎么仍然可以使用Non-null断言运算符摆脱这个错误呢?

 46:43  error  Parsing error: Unexpected token 

  16 | export default class MyComponent extends Vue {
> 18 |   @Prop({ default: 'Default Title' }) title!: string

.eslintrc.js:

module.exports = {
  root: true,
  env: {
    browser: true,
    node: true
  },
  parserOptions: {
    parser: 'babel-eslint',
    ecmaFeatures: {
      legacyDecorators: true
    }
  },
  extends: [
    '@nuxtjs',
    'plugin:nuxt/recommended'
  ],
  rules: {
    "quotemark": 0,
    "whitespace": [0, "check-branch", "check-operator", "check-typecast", "check-preblock", "check-postbrace", "check-type"],
    "interface-name": 0,
    "ordered-imports": 0,
    "object-literal-sort-keys": 0,
    "no-consecutive-blank-lines": 0,
    "semicolon": 0,
    "vue/html-self-closing": ["error", {
      "html": {
        "void": "any",
        "normal": "any",
        "component": "always"
      },
      "svg": "never",
      "math": "never"
    }],
    "trailing-comma": 0,
    "no-console": 0,
    "no-string-literal": 0,
    "no-var-requires": 0, 
    "ban-types": 0,
  }
}

1 个答案:

答案 0 :(得分:1)

这可能只是babel-eslint的错误或配置错误,但是如果您将Typescript与eslint一起使用,则最好使用@typescript-eslint/parser-这是用于处理TS代码的解析器。

通过该解析器,您还可以使用@typescript-eslint/plugin来更好地处理Typescript代码,该规则包含一些特定于linting Typescript代码的eslint规则,以及一些基本Lint规则的更新版本。

您可以看到@typescript-eslint Monorepo的README;有关将ESLint与Typescript结合使用的更多信息。