From a08122740c677d06f6834fe147e4cb901c1dac28 Mon Sep 17 00:00:00 2001 From: almost-no-one Date: Sun, 18 Apr 2021 04:19:38 +0300 Subject: [PATCH] fix(types): optional Boolean prop types #636 (#678) --- src/component/componentProps.ts | 8 +++++++- test-dts/defineComponent.test-d.ts | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/component/componentProps.ts b/src/component/componentProps.ts index d01ee3ed..bcd7e737 100644 --- a/src/component/componentProps.ts +++ b/src/component/componentProps.ts @@ -27,7 +27,13 @@ type PropConstructor = | { new (...args: string[]): Function } type RequiredKeys = { - [K in keyof T]: T[K] extends { required: true } | { default: any } ? K : never + [K in keyof T]: T[K] extends + | { required: true } + | { default: any } + | BooleanConstructor + | { type: BooleanConstructor } + ? K + : never }[keyof T] type OptionalKeys = Exclude> diff --git a/test-dts/defineComponent.test-d.ts b/test-dts/defineComponent.test-d.ts index bdd033cc..8856d832 100644 --- a/test-dts/defineComponent.test-d.ts +++ b/test-dts/defineComponent.test-d.ts @@ -85,7 +85,6 @@ describe('with object props', () => { }, hhh: { type: Boolean, - required: true, }, // default + function ffff: {