From: 木杉 Date: Mon, 30 Oct 2023 07:45:58 +0000 (+0800) Subject: fix(compile-sfc): support `Error` type in `defineProps` (#5955) X-Git-Tag: v3.3.8~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a9893458ec519aae442e1b99e64e6d74685cd22c;p=thirdparty%2Fvuejs%2Fcore.git fix(compile-sfc): support `Error` type in `defineProps` (#5955) --- diff --git a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap index 30e00e518b..5b0f96c501 100644 --- a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineProps.spec.ts.snap @@ -232,6 +232,7 @@ export default /*#__PURE__*/_defineComponent({ alias: { type: Array, required: true }, method: { type: Function, required: true }, symbol: { type: Symbol, required: true }, + error: { type: Error, required: true }, extract: { type: Number, required: true }, exclude: { type: [Number, Boolean], required: true }, uppercase: { type: String, required: true }, diff --git a/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts b/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts index 43f54b0aa1..674d697a59 100644 --- a/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript/defineProps.spec.ts @@ -97,6 +97,7 @@ const props = defineProps({ foo: String }) alias: Alias method(): void symbol: symbol + error: Error extract: Extract<1 | 2 | boolean, 2> exclude: Exclude<1 | 2 | boolean, 2> uppercase: Uppercase<'foo'> @@ -143,6 +144,7 @@ const props = defineProps({ foo: String }) expect(content).toMatch(`alias: { type: Array, required: true }`) expect(content).toMatch(`method: { type: Function, required: true }`) expect(content).toMatch(`symbol: { type: Symbol, required: true }`) + expect(content).toMatch(`error: { type: Error, required: true }`) expect(content).toMatch( `objectOrFn: { type: [Function, Object], required: true },` ) @@ -198,6 +200,7 @@ const props = defineProps({ foo: String }) alias: BindingTypes.PROPS, method: BindingTypes.PROPS, symbol: BindingTypes.PROPS, + error: BindingTypes.PROPS, objectOrFn: BindingTypes.PROPS, extract: BindingTypes.PROPS, exclude: BindingTypes.PROPS, diff --git a/packages/compiler-sfc/src/script/resolveType.ts b/packages/compiler-sfc/src/script/resolveType.ts index 215081dc0b..229bb3acfa 100644 --- a/packages/compiler-sfc/src/script/resolveType.ts +++ b/packages/compiler-sfc/src/script/resolveType.ts @@ -1391,6 +1391,7 @@ export function inferRuntimeType( case 'WeakMap': case 'Date': case 'Promise': + case 'Error': return [node.typeName.name] // TS built-in utility types