Skip to content

Commit e17c57f

Browse files
committed
fix(parser): should infer default value for counter types and object types
1 parent 04fedc0 commit e17c57f

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

packages/parser/src/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,9 @@ type _InferFlags<T extends FlagsDefinition> = {
140140
: T[K] extends
141141
| readonly [BooleanConstructor]
142142
| { type: readonly [BooleanConstructor] }
143-
? number
143+
? number | InferFlagDefault<T[K], never>
144144
: T[K] extends ObjectConstructor | { type: ObjectConstructor }
145-
? ObjectInputType
145+
? ObjectInputType | InferFlagDefault<T[K], never>
146146
: T[K] extends
147147
| readonly [FlagType<infer U>]
148148
| { type: readonly [FlagType<infer U>] }

packages/parser/test/types.test-d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ describe("parser types", () => {
6767
numberWithDefault: { type: Number, default: 42 },
6868
arrayStringWithDefault: { type: [String], default: ["a", "b"] },
6969
weirdType: { type: String, default: 123 }, // should be string | number
70+
objectWithWeirdDefault: { type: Object, default: "not an object" }, // should be ObjectInputType | string
71+
counterWithWeirdDefault: { type: [Boolean], default: "not a number" }, // should be number | string
7072
any1: Boolean as any,
7173
any2: { type: Boolean as any },
7274
},
@@ -77,6 +79,8 @@ describe("parser types", () => {
7779
numberWithDefault: number;
7880
arrayStringWithDefault: string[];
7981
weirdType: string | number;
82+
objectWithWeirdDefault: ObjectInputType | string;
83+
counterWithWeirdDefault: number | string;
8084
any1: any;
8185
any2: any;
8286
}>();

0 commit comments

Comments
 (0)