mirror of https://github.com/vuejs/core.git
fix(compiler-sfc): support @vue-ignore comment on more type sources
This commit is contained in:
parent
a476692ed2
commit
a23e99bedf
|
@ -137,6 +137,18 @@ describe('resolveType', () => {
|
|||
})
|
||||
})
|
||||
|
||||
test('intersection type with ignore', () => {
|
||||
expect(
|
||||
resolve(`
|
||||
type Foo = { foo: number }
|
||||
type Bar = { bar: string }
|
||||
defineProps<Foo & /* @vue-ignore */ Bar>()
|
||||
`).props,
|
||||
).toStrictEqual({
|
||||
foo: ['Number'],
|
||||
})
|
||||
})
|
||||
|
||||
// #7553
|
||||
test('union type', () => {
|
||||
expect(
|
||||
|
|
|
@ -165,6 +165,12 @@ function innerResolveTypeElements(
|
|||
scope: TypeScope,
|
||||
typeParameters?: Record<string, Node>,
|
||||
): ResolvedElements {
|
||||
if (
|
||||
node.leadingComments &&
|
||||
node.leadingComments.some(c => c.value.includes('@vue-ignore'))
|
||||
) {
|
||||
return { props: {} }
|
||||
}
|
||||
switch (node.type) {
|
||||
case 'TSTypeLiteral':
|
||||
return typeElementsToMap(ctx, node.members, scope, typeParameters)
|
||||
|
@ -414,12 +420,6 @@ function resolveInterfaceMembers(
|
|||
)
|
||||
if (node.extends) {
|
||||
for (const ext of node.extends) {
|
||||
if (
|
||||
ext.leadingComments &&
|
||||
ext.leadingComments.some(c => c.value.includes('@vue-ignore'))
|
||||
) {
|
||||
continue
|
||||
}
|
||||
try {
|
||||
const { props, calls } = resolveTypeElements(ctx, ext, scope)
|
||||
for (const key in props) {
|
||||
|
|
Loading…
Reference in New Issue