parent
642710eded
commit
4178d5d7d9
@ -109,10 +109,10 @@ type InferPropType<T> = [T] extends [null]
|
||||
? boolean
|
||||
: [T] extends [DateConstructor | { type: DateConstructor }]
|
||||
? Date
|
||||
: [T] extends [
|
||||
(DateConstructor | infer U)[] | { type: (DateConstructor | infer U)[] }
|
||||
]
|
||||
? Date | InferPropType<U>
|
||||
: [T] extends [(infer U)[] | { type: (infer U)[] }]
|
||||
? U extends DateConstructor
|
||||
? Date | InferPropType<U>
|
||||
: InferPropType<U>
|
||||
: [T] extends [Prop<infer V, infer D>]
|
||||
? unknown extends V
|
||||
? D
|
||||
|
@ -44,6 +44,7 @@ describe('with object props', () => {
|
||||
date?: Date
|
||||
l?: Date
|
||||
ll?: Date | number
|
||||
lll?: string | number
|
||||
}
|
||||
|
||||
type GT = string & { __brand: unknown }
|
||||
@ -135,7 +136,8 @@ describe('with object props', () => {
|
||||
},
|
||||
date: Date,
|
||||
l: [Date],
|
||||
ll: [Date, Number]
|
||||
ll: [Date, Number],
|
||||
lll: [String, Number]
|
||||
},
|
||||
setup(props) {
|
||||
// type assertion. See https://github.com/SamVerschueren/tsd
|
||||
@ -170,6 +172,7 @@ describe('with object props', () => {
|
||||
expectType<ExpectedProps['date']>(props.date)
|
||||
expectType<ExpectedProps['l']>(props.l)
|
||||
expectType<ExpectedProps['ll']>(props.ll)
|
||||
expectType<ExpectedProps['lll']>(props.lll)
|
||||
|
||||
// @ts-expect-error props should be readonly
|
||||
expectError((props.a = 1))
|
||||
|
Loading…
Reference in New Issue
Block a user