fix(compile-sfc): add symbol judge in prop type checks. (#4594)
fix #4592
This commit is contained in:
		
							parent
							
								
									06c5bf53ab
								
							
						
					
					
						commit
						fcd5422b4a
					
				@ -971,6 +971,7 @@ export default /*#__PURE__*/_defineComponent({
 | 
				
			|||||||
    interface: { type: Object, required: true },
 | 
					    interface: { type: Object, required: true },
 | 
				
			||||||
    alias: { type: Array, required: true },
 | 
					    alias: { type: Array, required: true },
 | 
				
			||||||
    method: { type: Function, required: true },
 | 
					    method: { type: Function, required: true },
 | 
				
			||||||
 | 
					    symbol: { type: Symbol, required: true },
 | 
				
			||||||
    union: { type: [String, Number], required: true },
 | 
					    union: { type: [String, Number], required: true },
 | 
				
			||||||
    literalUnion: { type: String, required: true },
 | 
					    literalUnion: { type: String, required: true },
 | 
				
			||||||
    literalUnionNumber: { type: Number, required: true },
 | 
					    literalUnionNumber: { type: Number, required: true },
 | 
				
			||||||
 | 
				
			|||||||
@ -706,6 +706,7 @@ const emit = defineEmits(['a', 'b'])
 | 
				
			|||||||
        interface: Test
 | 
					        interface: Test
 | 
				
			||||||
        alias: Alias
 | 
					        alias: Alias
 | 
				
			||||||
        method(): void
 | 
					        method(): void
 | 
				
			||||||
 | 
					        symbol: symbol
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        union: string | number
 | 
					        union: string | number
 | 
				
			||||||
        literalUnion: 'foo' | 'bar'
 | 
					        literalUnion: 'foo' | 'bar'
 | 
				
			||||||
@ -735,6 +736,7 @@ const emit = defineEmits(['a', 'b'])
 | 
				
			|||||||
      expect(content).toMatch(`interface: { type: Object, required: true }`)
 | 
					      expect(content).toMatch(`interface: { type: Object, required: true }`)
 | 
				
			||||||
      expect(content).toMatch(`alias: { type: Array, required: true }`)
 | 
					      expect(content).toMatch(`alias: { type: Array, required: true }`)
 | 
				
			||||||
      expect(content).toMatch(`method: { type: Function, required: true }`)
 | 
					      expect(content).toMatch(`method: { type: Function, required: true }`)
 | 
				
			||||||
 | 
					      expect(content).toMatch(`symbol: { type: Symbol, required: true }`)
 | 
				
			||||||
      expect(content).toMatch(
 | 
					      expect(content).toMatch(
 | 
				
			||||||
        `union: { type: [String, Number], required: true }`
 | 
					        `union: { type: [String, Number], required: true }`
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
@ -767,6 +769,7 @@ const emit = defineEmits(['a', 'b'])
 | 
				
			|||||||
        interface: BindingTypes.PROPS,
 | 
					        interface: BindingTypes.PROPS,
 | 
				
			||||||
        alias: BindingTypes.PROPS,
 | 
					        alias: BindingTypes.PROPS,
 | 
				
			||||||
        method: BindingTypes.PROPS,
 | 
					        method: BindingTypes.PROPS,
 | 
				
			||||||
 | 
					        symbol: BindingTypes.PROPS,
 | 
				
			||||||
        union: BindingTypes.PROPS,
 | 
					        union: BindingTypes.PROPS,
 | 
				
			||||||
        literalUnion: BindingTypes.PROPS,
 | 
					        literalUnion: BindingTypes.PROPS,
 | 
				
			||||||
        literalUnionNumber: BindingTypes.PROPS,
 | 
					        literalUnionNumber: BindingTypes.PROPS,
 | 
				
			||||||
 | 
				
			|||||||
@ -1541,6 +1541,9 @@ function inferRuntimeType(
 | 
				
			|||||||
    case 'TSIntersectionType':
 | 
					    case 'TSIntersectionType':
 | 
				
			||||||
      return ['Object']
 | 
					      return ['Object']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case 'TSSymbolKeyword':
 | 
				
			||||||
 | 
					      return ['Symbol']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
      return [`null`] // no runtime check
 | 
					      return [`null`] // no runtime check
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user