@@ -51,6 +51,10 @@ const { isTypeNode } = require('./ts-ast-utils')
51
51
* @typedef {import('@typescript-eslint/types').TSESTree.TSInferType } TSInferType
52
52
* @typedef {import('@typescript-eslint/types').TSESTree.TSOptionalType } TSOptionalType
53
53
* @typedef {import('@typescript-eslint/types').TSESTree.TSNonNullExpression } TSNonNullExpression
54
+ * @typedef {import('@typescript-eslint/types').TSESTree.TSAsExpression } TSAsExpression
55
+ * @typedef {import('@typescript-eslint/types').TSESTree.TSSatisfiesExpression } TSSatisfiesExpression
56
+ * @typedef {import('@typescript-eslint/types').TSESTree.TSTypeReference } TSTypeReference
57
+ * @typedef {import('@typescript-eslint/types').TSESTree.TSInstantiationExpression } TSInstantiationExpression
54
58
* @typedef {import('@typescript-eslint/types').TSESTree.JSXChild } JSXChild
55
59
* @typedef {import('@typescript-eslint/types').TSESTree.TypeNode } TypeNode
56
60
*
@@ -281,60 +285,57 @@ function defineVisitor({
281
285
}
282
286
} ,
283
287
/**
284
- * Process as expression
288
+ * Process as expression or satisfies expression
285
289
*
286
290
* e.g.
287
291
* ```
288
292
* var foo = bar as boolean
289
293
* // ^^^^^^^^^^^^^^
290
294
* ```
291
- */
292
- TSAsExpression ( node ) {
293
- const expressionTokens = getFirstAndLastTokens ( node . expression )
294
- const asToken = tokenStore . getTokenAfter ( expressionTokens . lastToken )
295
- setOffset (
296
- [ asToken , getFirstAndLastTokens ( node . typeAnnotation ) . firstToken ] ,
297
- 1 ,
298
- expressionTokens . firstToken
299
- )
300
- } ,
301
- /**
302
- * Process satisfies expression
303
295
*
304
296
* e.g.
305
297
* ```
306
298
* var foo = bar satisfies Bar
307
299
* // ^^^^^^^^^^^^^^^^^
308
300
* ```
301
+ *
302
+ * @param {TSAsExpression | TSSatisfiesExpression } node
309
303
*/
310
- TSSatisfiesExpression ( node ) {
304
+ 'TSAsExpression, TSSatisfiesExpression' ( node ) {
311
305
const expressionTokens = getFirstAndLastTokens ( node . expression )
312
- const satisfiesToken = tokenStore . getTokenAfter (
306
+ const asOrSatisfiesToken = tokenStore . getTokenAfter (
313
307
expressionTokens . lastToken
314
308
)
315
309
setOffset (
316
- [ satisfiesToken , getFirstAndLastTokens ( node . typeAnnotation ) . firstToken ] ,
310
+ [
311
+ asOrSatisfiesToken ,
312
+ getFirstAndLastTokens ( node . typeAnnotation ) . firstToken
313
+ ] ,
317
314
1 ,
318
315
expressionTokens . firstToken
319
316
)
320
317
} ,
321
318
/**
322
- * Process type reference
319
+ * Process type reference and instantiation expression
323
320
*
324
321
* e.g.
325
322
* ```
326
323
* const foo: Type<P>
327
324
* // ^^^^^^^
328
325
* ```
326
+ *
327
+ * e.g.
328
+ * ```
329
+ * const ErrorMap = Map<string, Error>;
330
+ * // ^^^^^^^^^^^^^^^^^^
331
+ * ```
332
+ *
333
+ * @param {TSTypeReference | TSInstantiationExpression } node
329
334
*/
330
- TSTypeReference ( node ) {
335
+ ' TSTypeReference, TSInstantiationExpression' ( node ) {
331
336
if ( node . typeParameters ) {
332
- const typeNameTokens = getFirstAndLastTokens ( node . typeName )
333
- setOffset (
334
- tokenStore . getFirstToken ( node . typeParameters ) ,
335
- 1 ,
336
- typeNameTokens . firstToken
337
- )
337
+ const firstToken = tokenStore . getFirstToken ( node )
338
+ setOffset ( tokenStore . getFirstToken ( node . typeParameters ) , 1 , firstToken )
338
339
}
339
340
} ,
340
341
/**
@@ -1288,19 +1289,6 @@ function defineVisitor({
1288
1289
setOffset ( quasiTokens , 0 , firstToken )
1289
1290
setOffset ( expressionToken , 1 , firstToken )
1290
1291
} ,
1291
- /**
1292
- * Process instantiation expression
1293
- *
1294
- * e.g.
1295
- * ```
1296
- * const ErrorMap = Map<string, Error>;
1297
- * // ^^^^^^^^^^^^^^^^^^
1298
- * ```
1299
- */
1300
- TSInstantiationExpression ( node ) {
1301
- const firstToken = tokenStore . getFirstToken ( node )
1302
- setOffset ( tokenStore . getFirstToken ( node . typeParameters ) , 1 , firstToken )
1303
- } ,
1304
1292
// ----------------------------------------------------------------------
1305
1293
// NON-STANDARD NODES
1306
1294
// ----------------------------------------------------------------------
0 commit comments