@@ -4,6 +4,7 @@ const { findVariable } = require('eslint-utils')
44 * @typedef {import('@typescript-eslint/types').TSESTree.TSInterfaceBody } TSInterfaceBody
55 * @typedef {import('@typescript-eslint/types').TSESTree.TSTypeLiteral } TSTypeLiteral
66 * @typedef {import('@typescript-eslint/types').TSESTree.Parameter } TSESTreeParameter
7+ * @typedef {import('@typescript-eslint/types').TSESTree.Node } Node
78 *
89 */
910/**
@@ -12,10 +13,55 @@ const { findVariable } = require('eslint-utils')
1213 */
1314
1415module . exports = {
16+ isTypeNode,
1517 getComponentPropsFromTypeDefine,
1618 getComponentEmitsFromTypeDefine
1719}
1820
21+ /**
22+ * @param {Node | ASTNode } node
23+ * @returns {node is TypeNode }
24+ */
25+ function isTypeNode ( node ) {
26+ return (
27+ node . type === 'TSAnyKeyword' ||
28+ node . type === 'TSArrayType' ||
29+ node . type === 'TSBigIntKeyword' ||
30+ node . type === 'TSBooleanKeyword' ||
31+ node . type === 'TSConditionalType' ||
32+ node . type === 'TSConstructorType' ||
33+ node . type === 'TSFunctionType' ||
34+ node . type === 'TSImportType' ||
35+ node . type === 'TSIndexedAccessType' ||
36+ node . type === 'TSInferType' ||
37+ node . type === 'TSIntersectionType' ||
38+ node . type === 'TSIntrinsicKeyword' ||
39+ node . type === 'TSLiteralType' ||
40+ node . type === 'TSMappedType' ||
41+ node . type === 'TSNamedTupleMember' ||
42+ node . type === 'TSNeverKeyword' ||
43+ node . type === 'TSNullKeyword' ||
44+ node . type === 'TSNumberKeyword' ||
45+ node . type === 'TSObjectKeyword' ||
46+ node . type === 'TSOptionalType' ||
47+ node . type === 'TSRestType' ||
48+ node . type === 'TSStringKeyword' ||
49+ node . type === 'TSSymbolKeyword' ||
50+ node . type === 'TSTemplateLiteralType' ||
51+ node . type === 'TSThisType' ||
52+ node . type === 'TSTupleType' ||
53+ node . type === 'TSTypeLiteral' ||
54+ node . type === 'TSTypeOperator' ||
55+ node . type === 'TSTypePredicate' ||
56+ node . type === 'TSTypeQuery' ||
57+ node . type === 'TSTypeReference' ||
58+ node . type === 'TSUndefinedKeyword' ||
59+ node . type === 'TSUnionType' ||
60+ node . type === 'TSUnknownKeyword' ||
61+ node . type === 'TSVoidKeyword'
62+ )
63+ }
64+
1965/**
2066 * @param {TypeNode } node
2167 * @returns {node is TSTypeLiteral }
0 commit comments