From 477be706d2854bb47ba13a9315f3c35bb9c92e2a Mon Sep 17 00:00:00 2001 From: ItMaga Date: Fri, 2 Jun 2023 21:25:27 +0300 Subject: [PATCH] fix(types): remove `defineProps` optional properties --- packages/dts-test/setupHelpers.test-d.ts | 7 +++++++ packages/runtime-core/src/apiSetupHelpers.ts | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/dts-test/setupHelpers.test-d.ts b/packages/dts-test/setupHelpers.test-d.ts index 77342590dc6..261e0841d2d 100644 --- a/packages/dts-test/setupHelpers.test-d.ts +++ b/packages/dts-test/setupHelpers.test-d.ts @@ -18,6 +18,7 @@ describe('defineProps w/ type declaration', () => { // type declaration const props = defineProps<{ foo: string + baz?: number bool?: boolean boolAndUndefined: boolean | undefined }>() @@ -26,6 +27,12 @@ describe('defineProps w/ type declaration', () => { // @ts-expect-error props.bar + expectType<{ + foo: string + baz: number | undefined + bool: boolean + boolAndUndefined: boolean + }>(props) expectType(props.bool) expectType(props.boolAndUndefined) }) diff --git a/packages/runtime-core/src/apiSetupHelpers.ts b/packages/runtime-core/src/apiSetupHelpers.ts index c00937981d9..d475480b6ec 100644 --- a/packages/runtime-core/src/apiSetupHelpers.ts +++ b/packages/runtime-core/src/apiSetupHelpers.ts @@ -4,7 +4,8 @@ import { isFunction, Prettify, UnionToIntersection, - extend + extend, + LooseRequired } from '@vue/shared' import { getCurrentInstance, @@ -93,7 +94,7 @@ export function defineProps() { return null as any } -type DefineProps = Readonly & { +type DefineProps = Readonly> & { readonly [K in BKeys]-?: boolean }