-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Closed
Labels
accepting prsGo ahead, send a pull request that resolves this issueGo ahead, send a pull request that resolves this issuebugSomething isn't workingSomething isn't workingformattingRelated to whitespace/bracket formatting. We strongly recommend you use a formatter instead.Related to whitespace/bracket formatting. We strongly recommend you use a formatter instead.package: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin
Description
Before You File a Bug Report Please Confirm You Have Done The Following...
- I have tried restarting my IDE and the issue persists.
- I have updated to the latest version of the packages.
- I have searched for related issues and found none that matched my issue.
- I have read the FAQ and my problem is not listed.
Playground Link
Repro Code
type Foo<T> = T extends { bar: string } ? string : number
type Bar<T> = T extends (bar: string) => void ? string : number
type Baz<T> = T extends (bar: string) => void ? { x: string } : { y: string }
ESLint Config
module.exports = {
"rules": {
"@typescript-eslint/space-infix-ops": "error"
}
}
tsconfig
Expected Result
there should not be errors reported
Actual Result
Operator ':' must be spaced. 1:30 - 1:31
Operator ':' must be spaced. 3:29 - 3:30
Additional Info
most likely can be fixed by improving token selection of
typescript-eslint/packages/eslint-plugin/src/rules/space-infix-ops.ts
Lines 185 to 198 in f0fb2e5
function checkForTypeConditional(node: TSESTree.TSConditionalType): void { | |
const extendsTypeNode = sourceCode.getTokenByRangeStart( | |
node.extendsType.range[0], | |
)!; | |
const trueTypeNode = sourceCode.getTokenByRangeStart( | |
node.trueType.range[0], | |
)!; | |
const falseTypeNode = sourceCode.getTokenByRangeStart( | |
node.falseType.range[0], | |
); | |
checkAndReportAssignmentSpace(node, extendsTypeNode, trueTypeNode); | |
checkAndReportAssignmentSpace(node, trueTypeNode, falseTypeNode); | |
} |
cc @CyanSalt
Versions
package | version |
---|---|
@typescript-eslint/eslint-plugin |
5.27.0 |
@typescript-eslint/parser |
5.27.0 |
TypeScript |
4.7.2 |
ESLint |
8.15.0 |
node |
web |
CyanSalt
Metadata
Metadata
Assignees
Labels
accepting prsGo ahead, send a pull request that resolves this issueGo ahead, send a pull request that resolves this issuebugSomething isn't workingSomething isn't workingformattingRelated to whitespace/bracket formatting. We strongly recommend you use a formatter instead.Related to whitespace/bracket formatting. We strongly recommend you use a formatter instead.package: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin