@@ -7,9 +7,11 @@ const utils = require('../utils')
7
7
const { capitalize } = require ( '../utils/casing' )
8
8
9
9
/**
10
+ * @typedef {import('../utils').ComponentProp } ComponentProp
10
11
* @typedef {import('../utils').ComponentObjectProp } ComponentObjectProp
11
12
* @typedef {import('../utils').ComponentArrayProp } ComponentArrayProp
12
13
* @typedef {import('../utils').ComponentTypeProp } ComponentTypeProp
14
+ * @typedef {import('../utils').ComponentInferTypeProp } ComponentInferTypeProp
13
15
* @typedef {import('../utils').ComponentUnknownProp } ComponentUnknownProp
14
16
* @typedef {import('../utils').VueObjectData } VueObjectData
15
17
*/
@@ -108,7 +110,7 @@ module.exports = {
108
110
*/
109
111
/**
110
112
* @typedef {object } PropDefaultFunctionContext
111
- * @property {ComponentObjectProp | ComponentTypeProp } prop
113
+ * @property {ComponentObjectProp | ComponentTypeProp | ComponentInferTypeProp } prop
112
114
* @property {Set<string> } types
113
115
* @property {FunctionValueType } default
114
116
*/
@@ -225,7 +227,7 @@ module.exports = {
225
227
226
228
/**
227
229
* @param {* } node
228
- * @param {ComponentObjectProp | ComponentTypeProp } prop
230
+ * @param {ComponentObjectProp | ComponentTypeProp | ComponentInferTypeProp } prop
229
231
* @param {Iterable<string> } expectedTypeNames
230
232
*/
231
233
function report ( node , prop , expectedTypeNames ) {
@@ -245,7 +247,7 @@ module.exports = {
245
247
}
246
248
247
249
/**
248
- * @param {(ComponentObjectDefineProp | ComponentTypeProp)[] } props
250
+ * @param {(ComponentObjectDefineProp | ComponentTypeProp | ComponentInferTypeProp )[] } props
249
251
* @param { { [key: string]: Expression | undefined } } withDefaults
250
252
*/
251
253
function processPropDefs ( props , withDefaults ) {
@@ -394,15 +396,15 @@ module.exports = {
394
396
} ) ,
395
397
utils . defineScriptSetupVisitor ( context , {
396
398
onDefinePropsEnter ( node , baseProps ) {
397
- /** @type {(ComponentObjectDefineProp | ComponentTypeProp)[] } */
398
399
const props = baseProps . filter (
399
400
/**
400
- * @param {ComponentObjectProp | ComponentArrayProp | ComponentTypeProp | ComponentUnknownProp } prop
401
- * @returns {prop is ComponentObjectDefineProp | ComponentTypeProp }
401
+ * @param {ComponentProp } prop
402
+ * @returns {prop is ComponentObjectDefineProp | ComponentInferTypeProp | ComponentTypeProp }
402
403
*/
403
404
( prop ) =>
404
405
Boolean (
405
406
prop . type === 'type' ||
407
+ prop . type === 'infer-type' ||
406
408
( prop . type === 'object' &&
407
409
prop . value . type === 'ObjectExpression' )
408
410
)
0 commit comments