-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
I've setup my project with the recommended settings. ESLint rules defined in .eslintrc.cjs are triggered correctly, e.g 'space-infix-ops': 'error' triggers on const first='John'. What I don't see happen is that rule triggering on field initializers, but if I understand correctly the marriage between TypeScript and ESLint, this rule should be implemented separately; however, I haven't found a relevant rule under the supported rules, so maybe one should be made and hence the title of my bug is incorrect? Apologies for the confusion.
Repro
{
"rules": {
'space-infix-ops': 'error'
}
}class Person {
first='John'
}Expected Result
ESLint: Operator '=' must be spaced.(space-infix-ops)
Actual Result
Only the obvious warning, 1:7 warning 'Person' is defined but never used @typescript-eslint/no-unused-vars.
Additional Info
> prg@1.0.0 lint /home/dandv/prg/ts-eslint
> eslint err.ts --debug
eslint:cli CLI args: [ 'err.ts', '--debug' ] +0ms
eslint:cli Running on files +2ms
eslint:config-array-factory Loading JSON config file: /home/dandv/prg/ts-eslint/package.json +0ms
eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/node_modules/*', '/bower_components/*' ], basePath: '/home/dandv/prg/ts-eslint', loose: false } ] +0ms
eslint:ignore-pattern processed: { basePath: '/home/dandv/prg/ts-eslint', patterns: [ '/node_modules/*', '/bower_components/*' ] } +1ms
eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/node_modules/*', '/bower_components/*' ], basePath: '/home/dandv/prg/ts-eslint', loose: false } ] +0ms
eslint:ignore-pattern processed: { basePath: '/home/dandv/prg/ts-eslint', patterns: [ '/node_modules/*', '/bower_components/*' ] } +0ms
eslint:file-enumerator Start to iterate files: [ 'err.ts' ] +0ms
eslint:file-enumerator File: /home/dandv/prg/ts-eslint/err.ts +0ms
eslint:cascading-config-array-factory Load config files for /home/dandv/prg/ts-eslint. +0ms
eslint:cascading-config-array-factory No cache found: /home/dandv/prg/ts-eslint. +0ms
eslint:config-array-factory Loading JS config file: /home/dandv/prg/ts-eslint/.eslintrc.cjs +3ms
eslint:config-array-factory Config file found: /home/dandv/prg/ts-eslint/.eslintrc.cjs +1ms
eslint:config-array-factory Loading {extends:"eslint:recommended"} relative to /home/dandv/prg/ts-eslint/.eslintrc.cjs +0ms
eslint:config-array-factory Loading JS config file: /home/dandv/prg/ts-eslint/node_modules/eslint/conf/eslint-recommended.js +0ms
eslint:config-array-factory Loading {extends:"plugin:@typescript-eslint/eslint-recommended"} relative to /home/dandv/prg/ts-eslint/.eslintrc.cjs +2ms
eslint:config-array-factory Loading plugin "@typescript-eslint" from /home/dandv/prg/ts-eslint/.eslintrc.cjs +0ms
eslint:config-array-factory Loaded: @typescript-eslint/eslint-plugin@2.22.0 (/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +1ms
eslint:config-array-factory Plugin /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 135ms +135ms
eslint:config-array-factory Loading {extends:"plugin:@typescript-eslint/recommended"} relative to /home/dandv/prg/ts-eslint/.eslintrc.cjs +1ms
eslint:config-array-factory Loading plugin "@typescript-eslint" from /home/dandv/prg/ts-eslint/.eslintrc.cjs +0ms
eslint:config-array-factory Loaded: @typescript-eslint/eslint-plugin@2.22.0 (/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +0ms
eslint:config-array-factory Plugin /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 0ms +0ms
eslint:config-array-factory Loading {extends:"./configs/base.json"} relative to /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js +1ms
eslint:config-array-factory package.json was not found: Cannot find module './configs/base.json/package.json'
Require stack:
- /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js +0ms
eslint:config-array-factory Loaded: ./configs/base.json (/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json) +0ms
eslint:config-array-factory Loading JSON config file: /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json +0ms
eslint:config-array-factory Loading parser "@typescript-eslint/parser" from /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json +0ms
eslint:config-array-factory Loaded: @typescript-eslint/parser@2.22.0 (/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/parser/dist/parser.js) +0ms
eslint:config-array-factory Loading plugin "@typescript-eslint" from /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json +23ms
eslint:config-array-factory Loaded: @typescript-eslint/eslint-plugin@2.22.0 (/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +0ms
eslint:config-array-factory Plugin /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 0ms +0ms
eslint:config-array-factory Loading parser "@typescript-eslint/parser" from /home/dandv/prg/ts-eslint/.eslintrc.cjs +0ms
eslint:config-array-factory Loaded: @typescript-eslint/parser@2.22.0 (/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/parser/dist/parser.js) +0ms
eslint:config-array-factory Loading plugin "@typescript-eslint" from /home/dandv/prg/ts-eslint/.eslintrc.cjs +0ms
eslint:config-array-factory Loaded: @typescript-eslint/eslint-plugin@2.22.0 (/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js) +0ms
eslint:config-array-factory Plugin /home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js loaded in: 0ms +0ms
eslint:cascading-config-array-factory No cache found: /home/dandv/prg. +164ms
eslint:config-array-factory Config file not found on /home/dandv/prg +0ms
eslint:cascading-config-array-factory No cache found: /home/dandv. +0ms
eslint:cascading-config-array-factory Stop traversing because of considered root. +0ms
eslint:rules Loading rule 'constructor-super' (remaining=274) +0ms
eslint:rules Loading rule 'for-direction' (remaining=273) +1ms
eslint:rules Loading rule 'getter-return' (remaining=272) +0ms
eslint:rules Loading rule 'no-async-promise-executor' (remaining=271) +1ms
eslint:rules Loading rule 'no-case-declarations' (remaining=270) +0ms
eslint:rules Loading rule 'no-class-assign' (remaining=269) +0ms
eslint:rules Loading rule 'no-compare-neg-zero' (remaining=268) +1ms
eslint:rules Loading rule 'no-cond-assign' (remaining=267) +0ms
eslint:rules Loading rule 'no-const-assign' (remaining=266) +0ms
eslint:rules Loading rule 'no-constant-condition' (remaining=265) +1ms
eslint:rules Loading rule 'no-control-regex' (remaining=264) +0ms
eslint:rules Loading rule 'no-debugger' (remaining=263) +1ms
eslint:rules Loading rule 'no-delete-var' (remaining=262) +1ms
eslint:rules Loading rule 'no-dupe-args' (remaining=261) +0ms
eslint:rules Loading rule 'no-dupe-class-members' (remaining=260) +0ms
eslint:rules Loading rule 'no-dupe-keys' (remaining=259) +0ms
eslint:rules Loading rule 'no-duplicate-case' (remaining=258) +0ms
eslint:rules Loading rule 'no-empty' (remaining=257) +1ms
eslint:rules Loading rule 'no-empty-character-class' (remaining=256) +0ms
eslint:rules Loading rule 'no-empty-pattern' (remaining=255) +1ms
eslint:rules Loading rule 'no-ex-assign' (remaining=254) +0ms
eslint:rules Loading rule 'no-extra-boolean-cast' (remaining=253) +0ms
eslint:rules Loading rule 'no-extra-semi' (remaining=252) +0ms
eslint:rules Loading rule 'no-fallthrough' (remaining=251) +0ms
eslint:rules Loading rule 'no-func-assign' (remaining=250) +1ms
eslint:rules Loading rule 'no-global-assign' (remaining=249) +0ms
eslint:rules Loading rule 'no-inner-declarations' (remaining=248) +1ms
eslint:rules Loading rule 'no-invalid-regexp' (remaining=247) +1ms
eslint:rules Loading rule 'no-irregular-whitespace' (remaining=246) +0ms
eslint:rules Loading rule 'no-misleading-character-class' (remaining=245) +1ms
eslint:rules Loading rule 'no-mixed-spaces-and-tabs' (remaining=244) +1ms
eslint:rules Loading rule 'no-new-symbol' (remaining=243) +1ms
eslint:rules Loading rule 'no-obj-calls' (remaining=242) +0ms
eslint:rules Loading rule 'no-octal' (remaining=241) +1ms
eslint:rules Loading rule 'no-prototype-builtins' (remaining=240) +0ms
eslint:rules Loading rule 'no-redeclare' (remaining=239) +0ms
eslint:rules Loading rule 'no-regex-spaces' (remaining=238) +1ms
eslint:rules Loading rule 'no-self-assign' (remaining=237) +0ms
eslint:rules Loading rule 'no-shadow-restricted-names' (remaining=236) +1ms
eslint:rules Loading rule 'no-sparse-arrays' (remaining=235) +0ms
eslint:rules Loading rule 'no-this-before-super' (remaining=234) +0ms
eslint:rules Loading rule 'no-undef' (remaining=233) +1ms
eslint:rules Loading rule 'no-unexpected-multiline' (remaining=232) +0ms
eslint:rules Loading rule 'no-unreachable' (remaining=231) +0ms
eslint:rules Loading rule 'no-unsafe-finally' (remaining=230) +1ms
eslint:rules Loading rule 'no-unsafe-negation' (remaining=229) +0ms
eslint:rules Loading rule 'no-unused-labels' (remaining=228) +1ms
eslint:rules Loading rule 'no-unused-vars' (remaining=227) +0ms
eslint:rules Loading rule 'no-useless-catch' (remaining=226) +1ms
eslint:rules Loading rule 'no-useless-escape' (remaining=225) +1ms
eslint:rules Loading rule 'no-with' (remaining=224) +0ms
eslint:rules Loading rule 'require-yield' (remaining=223) +0ms
eslint:rules Loading rule 'use-isnan' (remaining=222) +0ms
eslint:rules Loading rule 'valid-typeof' (remaining=221) +1ms
eslint:rules Loading rule 'camelcase' (remaining=220) +2ms
eslint:rules Loading rule 'no-array-constructor' (remaining=219) +6ms
eslint:rules Loading rule 'no-empty-function' (remaining=218) +1ms
eslint:rules Loading rule 'no-use-before-define' (remaining=217) +2ms
eslint:rules Loading rule 'no-var' (remaining=216) +4ms
eslint:rules Loading rule 'prefer-const' (remaining=215) +0ms
eslint:rules Loading rule 'prefer-rest-params' (remaining=214) +1ms
eslint:rules Loading rule 'prefer-spread' (remaining=213) +0ms
eslint:rules Loading rule 'space-infix-ops' (remaining=212) +2ms
eslint:cascading-config-array-factory Configuration was determined: ConfigArray(7) [ { name: 'DefaultIgnorePattern', filePath: '', criteria: null, env: undefined, globals: undefined, ignorePattern: IgnorePattern { patterns: [Array], basePath: '/home/dandv/prg/ts-eslint', loose: false }, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined }, { name: '.eslintrc.cjs » eslint:recommended', filePath: '/home/dandv/prg/ts-eslint/node_modules/eslint/conf/eslint-recommended.js', criteria: null, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: { 'constructor-super': 'error', 'for-direction': 'error', 'getter-return': 'error', 'no-async-promise-executor': 'error', 'no-case-declarations': 'error', 'no-class-assign': 'error', 'no-compare-neg-zero': 'error', 'no-cond-assign': 'error', 'no-const-assign': 'error', 'no-constant-condition': 'error', 'no-control-regex': 'error', 'no-debugger': 'error', 'no-delete-var': 'error', 'no-dupe-args': 'error', 'no-dupe-class-members': 'error', 'no-dupe-keys': 'error', 'no-duplicate-case': 'error', 'no-empty': 'error', 'no-empty-character-class': 'error', 'no-empty-pattern': 'error', 'no-ex-assign': 'error', 'no-extra-boolean-cast': 'error', 'no-extra-semi': 'error', 'no-fallthrough': 'error', 'no-func-assign': 'error', 'no-global-assign': 'error', 'no-inner-declarations': 'error', 'no-invalid-regexp': 'error', 'no-irregular-whitespace': 'error', 'no-misleading-character-class': 'error', 'no-mixed-spaces-and-tabs': 'error', 'no-new-symbol': 'error', 'no-obj-calls': 'error', 'no-octal': 'error', 'no-prototype-builtins': 'error', 'no-redeclare': 'error', 'no-regex-spaces': 'error', 'no-self-assign': 'error', 'no-shadow-restricted-names': 'error', 'no-sparse-arrays': 'error', 'no-this-before-super': 'error', 'no-undef': 'error', 'no-unexpected-multiline': 'error', 'no-unreachable': 'error', 'no-unsafe-finally': 'error', 'no-unsafe-negation': 'error', 'no-unused-labels': 'error', 'no-unused-vars': 'error', 'no-useless-catch': 'error', 'no-useless-escape': 'error', 'no-with': 'error', 'require-yield': 'error', 'use-isnan': 'error', 'valid-typeof': 'error' }, settings: undefined }, { name: '.eslintrc.cjs » plugin:@typescript-eslint/eslint-recommended', filePath: '/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js', criteria: null, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined }, { name: '.eslintrc.cjs » plugin:@typescript-eslint/eslint-recommended#overrides[0]', filePath: '/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js', criteria: { includes: [Array], excludes: null, basePath: '/home/dandv/prg/ts-eslint' }, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: { 'getter-return': 'off', 'no-dupe-args': 'off', 'no-dupe-keys': 'off', 'no-unreachable': 'off', 'valid-typeof': 'off', 'no-const-assign': 'off', 'no-new-symbol': 'off', 'no-this-before-super': 'off', 'no-undef': 'off', 'no-dupe-class-members': 'off', 'no-redeclare': 'off' }, settings: undefined }, { name: '.eslintrc.cjs » plugin:@typescript-eslint/recommended » ./configs/base.json', filePath: '/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json', criteria: null, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: { error: null, filePath: '/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/parser/dist/parser.js', id: '@typescript-eslint/parser', importerName: '.eslintrc.cjs » plugin:@typescript-eslint/recommended » ./configs/base.json', importerPath: '/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json' }, parserOptions: { sourceType: 'module' }, plugins: { '@typescript-eslint': [Object] }, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined }, { name: '.eslintrc.cjs » plugin:@typescript-eslint/recommended', filePath: '/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/eslint-plugin/dist/index.js', criteria: null, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: { '@typescript-eslint/adjacent-overload-signatures': 'error', '@typescript-eslint/ban-ts-ignore': 'error', '@typescript-eslint/ban-types': 'error', camelcase: 'off', '@typescript-eslint/camelcase': 'error', '@typescript-eslint/class-name-casing': 'error', '@typescript-eslint/consistent-type-assertions': 'error', '@typescript-eslint/explicit-function-return-type': 'warn', '@typescript-eslint/interface-name-prefix': 'error', '@typescript-eslint/member-delimiter-style': 'error', 'no-array-constructor': 'off', '@typescript-eslint/no-array-constructor': 'error', 'no-empty-function': 'off', '@typescript-eslint/no-empty-function': 'error', '@typescript-eslint/no-empty-interface': 'error', '@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-inferrable-types': 'error', '@typescript-eslint/no-misused-new': 'error', '@typescript-eslint/no-namespace': 'error', '@typescript-eslint/no-non-null-assertion': 'warn', '@typescript-eslint/no-this-alias': 'error', 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': 'warn', 'no-use-before-define': 'off', '@typescript-eslint/no-use-before-define': 'error', '@typescript-eslint/no-var-requires': 'error', '@typescript-eslint/prefer-namespace-keyword': 'error', '@typescript-eslint/triple-slash-reference': 'error', '@typescript-eslint/type-annotation-spacing': 'error', 'no-var': 'error', 'prefer-const': 'error', 'prefer-rest-params': 'error', 'prefer-spread': 'error' }, settings: undefined }, { name: '.eslintrc.cjs', filePath: '/home/dandv/prg/ts-eslint/.eslintrc.cjs', criteria: null, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: { error: null, filePath: '/home/dandv/prg/ts-eslint/node_modules/@typescript-eslint/parser/dist/parser.js', id: '@typescript-eslint/parser', importerName: '.eslintrc.cjs', importerPath: '/home/dandv/prg/ts-eslint/.eslintrc.cjs' }, parserOptions: { ecmaVersion: 2019, sourceType: 'module' }, plugins: { '@typescript-eslint': [Object] }, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: { 'space-infix-ops': 'error' }, settings: undefined } ] on /home/dandv/prg/ts-eslint +42ms
eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/node_modules/*', '/bower_components/*' ], basePath: '/home/dandv/prg/ts-eslint', loose: false } ] +210ms
eslint:ignore-pattern processed: { basePath: '/home/dandv/prg/ts-eslint', patterns: [ '/node_modules/*', '/bower_components/*' ] } +1ms
eslint:ignore-pattern Check {
filePath: '/home/dandv/prg/ts-eslint/err.ts',
dot: false,
relativePath: 'err.ts',
result: false
} +0ms
eslint:cli-engine Lint /home/dandv/prg/ts-eslint/err.ts +0ms
eslint:linter Linting code for /home/dandv/prg/ts-eslint/err.ts (pass 1) +0ms
eslint:linter Verify +0ms
eslint:linter With ConfigArray: /home/dandv/prg/ts-eslint/err.ts +0ms
eslint:linter Generating fixed text for /home/dandv/prg/ts-eslint/err.ts (pass 1) +30ms
eslint:source-code-fixer Applying fixes +0ms
eslint:source-code-fixer shouldFix parameter was false, not attempting fixes +0ms
eslint:file-enumerator Complete iterating files: ["err.ts"] +240ms
eslint:cli-engine Linting complete in: 241ms +30ms
/home/dandv/prg/ts-eslint/err.ts
1:7 warning 'Person' is defined but never used @typescript-eslint/no-unused-vars
✖ 1 problem (0 errors, 1 warning)
Versions
| package | version |
|---|---|
@typescript-eslint/eslint-plugin |
2.22.0 |
@typescript-eslint/parser |
2.22.0 |
TypeScript |
3.8.3 |
ESLint |
6.8.0 |
node |
13.9.0 |
npm |
6.3.17 |