Closed
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.
Relevant Package
visitor-keys
Playground Link
Repro Code
/*
* TSImportType
* Keys: ['argument', 'qualifier', 'typeArguments', 'options']
* Should be: ['argument', 'options', 'qualifier', 'typeArguments']
*/
type A = import('foo', { assert: { 'resolution-mode': 'import' } }).qualifier<T>;
// argument ^^^^^
// options ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// qualifier ^^^^^^^^^
// typeArguments ^^^
/*
* TSIndexedAccessType
* Keys: ['indexType', 'objectType']
* Should be: ['objectType', 'indexType']
*/
type B = Person["age" | "name"];
// ^^^^^^ objectType
// ^^^^^^^^^^^^^^^^ indexType
/*
* TSMethodSignature
* Keys: ['typeParameters', 'key', 'params', 'returnType']
* Should be: ['key', 'typeParameters', 'params', 'returnType']
*/
interface Foo { bar<T>(a: number): string; }
// key ^^^
// typeParameters ^^^
// params ^^^^^^^^^
// returnType ^^^^^^
/*
* TSPropertySignature
* Keys: ['typeAnnotation', 'key']
* Should be: ['key', 'typeAnnotation']
*/
interface Bar { qux: number }
// key ^^^
// typeAnnotation ^^^^^^
/*
* TSTypePredicate
* Keys: ['typeAnnotation', 'parameterName']
* Should be: ['parameterName', 'typeAnnotation']
*/
function isString(maybe: unknown): maybe is string { return typeof maybe === 'string'; }
// parameterName ^^^^^
// typeAnnotation ^^^^^^
ESLint Config
tsconfig
Expected Result
A comment in visitor-keys
package states that keys "should be sorted in the order that they appear in the source code".
typescript-eslint/packages/visitor-keys/src/visitor-keys.ts
Lines 111 to 132 in 0f5c59c
This is not the case for 5 types:
TSImportType
TSIndexedAccessType
TSMethodSignature
TSPropertySignature
TSTypePredicate
Please see above for examples.
Actual Result
Properties are visited not in source code order.
Additional Info
No response
Versions
package | version |
---|---|
@typescript-eslint/visitor-keys |
8.33.1 |