Skip to content

Commit e008d34

Browse files
authored
fix: avoid calling typeParameters getter (#2327)
1 parent 4db54a7 commit e008d34

10 files changed

+40
-16
lines changed

lib/rules/define-emits-declaration.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ module.exports = {
7676
}
7777

7878
case 'runtime': {
79-
const typeArguments = node.typeArguments || node.typeParameters
79+
const typeArguments =
80+
'typeArguments' in node ? node.typeArguments : node.typeParameters
8081
if (typeArguments && typeArguments.params.length > 0) {
8182
context.report({
8283
node,

lib/rules/define-props-declaration.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ module.exports = {
4747
}
4848

4949
case 'runtime': {
50-
const typeArguments = node.typeArguments || node.typeParameters
50+
const typeArguments =
51+
'typeArguments' in node ? node.typeArguments : node.typeParameters
5152
if (typeArguments && typeArguments.params.length > 0) {
5253
context.report({
5354
node,

lib/rules/require-typed-ref.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ module.exports = {
8484
}
8585

8686
const typeArguments =
87-
ref.node.typeArguments || ref.node.typeParameters
87+
'typeArguments' in ref.node
88+
? ref.node.typeArguments
89+
: ref.node.typeParameters
8890
if (typeArguments == null) {
8991
if (
9092
ref.node.parent.type === 'VariableDeclarator' &&

lib/rules/valid-define-emits.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ module.exports = {
4747
onDefineEmitsEnter(node) {
4848
defineEmitsNodes.push(node)
4949

50-
const typeArguments = node.typeArguments || node.typeParameters
50+
const typeArguments =
51+
'typeArguments' in node ? node.typeArguments : node.typeParameters
5152
if (node.arguments.length > 0) {
5253
if (typeArguments && typeArguments.params.length > 0) {
5354
// `defineEmits` has both a literal type and an argument.

lib/rules/valid-define-options.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ module.exports = {
7474
})
7575
}
7676

77-
const typeArguments = node.typeArguments || node.typeParameters
77+
const typeArguments =
78+
'typeArguments' in node ? node.typeArguments : node.typeParameters
7879
if (typeArguments) {
7980
context.report({
8081
node: typeArguments,

lib/rules/valid-define-props.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ module.exports = {
4848
onDefinePropsEnter(node) {
4949
definePropsNodes.push(node)
5050

51-
const typeArguments = node.typeArguments || node.typeParameters
51+
const typeArguments =
52+
'typeArguments' in node ? node.typeArguments : node.typeParameters
5253
if (node.arguments.length > 0) {
5354
if (typeArguments && typeArguments.params.length > 0) {
5455
// `defineProps` has both a literal type and an argument.

lib/utils/indent-common.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -1168,7 +1168,8 @@ module.exports.defineVisitor = function create(
11681168
},
11691169
/** @param {CallExpression} node */
11701170
CallExpression(node) {
1171-
const typeArguments = node.typeArguments || node.typeParameters
1171+
const typeArguments =
1172+
'typeArguments' in node ? node.typeArguments : node.typeParameters
11721173
const firstToken = tokenStore.getFirstToken(node)
11731174
const rightToken = tokenStore.getLastToken(node)
11741175
const leftToken = /** @type {Token} */ (
@@ -1695,7 +1696,8 @@ module.exports.defineVisitor = function create(
16951696
},
16961697
/** @param {NewExpression} node */
16971698
NewExpression(node) {
1698-
const typeArguments = node.typeArguments || node.typeParameters
1699+
const typeArguments =
1700+
'typeArguments' in node ? node.typeArguments : node.typeParameters
16991701
const newToken = tokenStore.getFirstToken(node)
17001702
const calleeToken = tokenStore.getTokenAfter(newToken)
17011703
const rightToken = tokenStore.getLastToken(node)

lib/utils/indent-ts.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,10 @@ function defineVisitor({
332332
* @param {TSTypeReference | TSInstantiationExpression} node
333333
*/
334334
'TSTypeReference, TSInstantiationExpression'(node) {
335-
const typeArguments = node.typeArguments || node.typeParameters
335+
const typeArguments =
336+
'typeArguments' in node
337+
? node.typeArguments
338+
: /** @type {any} typescript-eslint v5 */ (node).typeParameters
336339
if (typeArguments) {
337340
const firstToken = tokenStore.getFirstToken(node)
338341
setOffset(tokenStore.getFirstToken(typeArguments), 1, firstToken)
@@ -1183,8 +1186,9 @@ function defineVisitor({
11831186
setOffset([dotToken, propertyToken], 1, firstToken)
11841187
}
11851188
const typeArguments =
1186-
node.typeArguments ||
1187-
/** @type {any} typescript-eslint v5 */ (node).typeParameters
1189+
'typeArguments' in node
1190+
? node.typeArguments
1191+
: /** @type {any} typescript-eslint v5 */ (node).typeParameters
11881192
if (typeArguments) {
11891193
setOffset(tokenStore.getFirstToken(typeArguments), 1, firstToken)
11901194
}

lib/utils/index.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -3000,7 +3000,8 @@ function getComponentPropsFromDefineProps(context, node) {
30003000
}
30013001
]
30023002
}
3003-
const typeArguments = node.typeArguments || node.typeParameters
3003+
const typeArguments =
3004+
'typeArguments' in node ? node.typeArguments : node.typeParameters
30043005
if (typeArguments && typeArguments.params.length > 0) {
30053006
return getComponentPropsFromTypeDefine(context, typeArguments.params[0])
30063007
}
@@ -3033,7 +3034,8 @@ function getComponentEmitsFromDefineEmits(context, node) {
30333034
}
30343035
]
30353036
}
3036-
const typeArguments = node.typeArguments || node.typeParameters
3037+
const typeArguments =
3038+
'typeArguments' in node ? node.typeArguments : node.typeParameters
30373039
if (typeArguments && typeArguments.params.length > 0) {
30383040
return getComponentEmitsFromTypeDefine(context, typeArguments.params[0])
30393041
}

lib/utils/ts-utils/ts-ast.js

+12-3
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,10 @@ function inferRuntimeType(context, node, checked = new Set()) {
430430
return ['Array']
431431
}
432432
case 'NonNullable': {
433-
const typeArguments = node.typeArguments || node.typeParameters
433+
const typeArguments =
434+
'typeArguments' in node
435+
? node.typeArguments
436+
: /** @type {any} typescript-eslint v5 */ (node).typeParameters
434437
if (typeArguments && typeArguments.params[0]) {
435438
return inferRuntimeType(
436439
context,
@@ -441,15 +444,21 @@ function inferRuntimeType(context, node, checked = new Set()) {
441444
break
442445
}
443446
case 'Extract': {
444-
const typeArguments = node.typeArguments || node.typeParameters
447+
const typeArguments =
448+
'typeArguments' in node
449+
? node.typeArguments
450+
: /** @type {any} typescript-eslint v5 */ (node).typeParameters
445451
if (typeArguments && typeArguments.params[1]) {
446452
return inferRuntimeType(context, typeArguments.params[1], checked)
447453
}
448454
break
449455
}
450456
case 'Exclude':
451457
case 'OmitThisParameter': {
452-
const typeArguments = node.typeArguments || node.typeParameters
458+
const typeArguments =
459+
'typeArguments' in node
460+
? node.typeArguments
461+
: /** @type {any} typescript-eslint v5 */ (node).typeParameters
453462
if (typeArguments && typeArguments.params[0]) {
454463
return inferRuntimeType(context, typeArguments.params[0], checked)
455464
}

0 commit comments

Comments
 (0)