Skip to content

[space-infix-ops] no error when right type is function #4802

Closed
@andrewda

Description

@andrewda
  • I have tried restarting my IDE and the issue persists.
  • I have updated to the latest version of the packages.
  • I have read the FAQ and my problem is not listed.

Repro

module.exports = {
	"parser": "@typescript-eslint/parser",
	"plugins": ["@typescript-eslint"],
	"extends": [
		"eslint:recommended",
		"plugin:@typescript-eslint/eslint-recommended",
		"plugin:@typescript-eslint/recommended"
	],
	"rules": {
		"@typescript-eslint/space-infix-ops": "error"
	}
}
// Does not throw error 👎
export interface Test {
  default?: boolean|(() => boolean);
}
// Does not throw error 👎
export interface Test {
  default?: (() => boolean)|(() => string);
}
// Correctly throws error 👍
export interface Test {
  default?: (() => boolean)|boolean;
}
// Correctly throws error 👍
export interface Test {
  default?: boolean | (() => boolean|Promise<boolean>);
}
// Correctly throws error 👍
export interface Test {
  default?: boolean|string;
}

Expected Result

I expect an error when running npx eslint repro.ts on the first two cases above:

/home/andrewda/Development/repro.ts
  2:20  error  Operator '|' must be spaced  @typescript-eslint/space-infix-ops

Actual Result

No error messages are printed by eslint when the right type is a function, e.g. (() => string). If the left type is a function, errors are thrown correctly.

Versions

package version
@typescript-eslint/eslint-plugin 5.18.0
@typescript-eslint/parser 5.18.0
TypeScript 4.6.3
ESLint 8.13.0
node 16.13.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    accepting prsGo ahead, send a pull request that resolves this issuebugSomething isn't workingformattingRelated to whitespace/bracket formatting. We strongly recommend you use a formatter instead.package: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions