fix(generic-spacing): improve cases
This commit is contained in:
parent
e13613fd5f
commit
ff6a1fad6a
@ -13,12 +13,24 @@ type Foo<
|
||||
`function foo<
|
||||
T
|
||||
>() {}`,
|
||||
'const foo = <T>(name: T) => name',
|
||||
`interface Log {
|
||||
foo<T>(name: T): void
|
||||
}`,
|
||||
`interface Log {
|
||||
<T>(name: T): void
|
||||
}`,
|
||||
]
|
||||
const invalids = [
|
||||
['type Foo<T=true> = T', 'type Foo<T = true> = T'],
|
||||
['type Foo<T,K> = T', 'type Foo<T, K> = T'],
|
||||
['type Foo<T=false,K=1|2> = T', 'type Foo<T = false, K = 1|2> = T', 3],
|
||||
['function foo <T>() {}', 'function foo<T>() {}'],
|
||||
[`interface Log {
|
||||
foo <T>(name: T): void
|
||||
}`, `interface Log {
|
||||
foo<T>(name: T): void
|
||||
}`],
|
||||
] as const
|
||||
|
||||
it('runs', () => {
|
||||
|
@ -23,17 +23,19 @@ export default createEslintRule<Options, MessageIds>({
|
||||
const sourceCode = context.getSourceCode()
|
||||
return {
|
||||
TSTypeParameterDeclaration: (node) => {
|
||||
const pre = sourceCode.text.slice(0, node.range[0])
|
||||
const preSpace = pre.match(/(\s+)$/)?.[0]
|
||||
// strip space before <T>
|
||||
if (preSpace && preSpace.length) {
|
||||
context.report({
|
||||
node,
|
||||
messageId: 'genericSpacingMismatch',
|
||||
*fix(fixer) {
|
||||
yield fixer.replaceTextRange([node.range[0] - preSpace.length, node.range[0]], '')
|
||||
},
|
||||
})
|
||||
if (!['TSCallSignatureDeclaration', 'ArrowFunctionExpression'].includes(node.parent.type)) {
|
||||
const pre = sourceCode.text.slice(0, node.range[0])
|
||||
const preSpace = pre.match(/(\s+)$/)?.[0]
|
||||
// strip space before <T>
|
||||
if (preSpace && preSpace.length) {
|
||||
context.report({
|
||||
node,
|
||||
messageId: 'genericSpacingMismatch',
|
||||
*fix(fixer) {
|
||||
yield fixer.replaceTextRange([node.range[0] - preSpace.length, node.range[0]], '')
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// add space between <T,K>
|
||||
|
Loading…
Reference in New Issue
Block a user