fix(compiler-sfc): generate matching prop types when withDefaults is used (#4466)

fix #4455
This commit is contained in:
webfansplz
2021-09-02 23:26:52 +08:00
committed by GitHub
parent 305883a12f
commit 85807967dc
3 changed files with 108 additions and 35 deletions

View File

@@ -1037,11 +1037,13 @@ import { defaults } from './foo'
export default /*#__PURE__*/_defineComponent({
props: _mergeDefaults({
foo: { type: String, required: false },
bar: { type: Number, required: false }
bar: { type: Number, required: false },
baz: { type: Boolean, required: true }
}, { ...defaults }) as unknown as undefined,
setup(__props: {
foo?: string
bar?: number
baz: boolean
}, { expose }) {
expose()
@@ -1060,12 +1062,11 @@ exports[`SFC compile <script setup> with TypeScript withDefaults (static) 1`] =
export default /*#__PURE__*/_defineComponent({
props: {
foo: { type: String, required: false, default: 'hi' },
bar: { type: Number, required: false }
bar: { type: Number, required: false },
baz: { type: Boolean, required: true },
qux: { type: Function, required: false, default() { return 1 } }
} as unknown as undefined,
setup(__props: {
foo?: string
bar?: number
}, { expose }) {
setup(__props: { foo: string, bar?: number, baz: boolean, qux(): number }, { expose }) {
expose()
const props = __props