types(runtime-core): make this
void in prop validators and prop default factories (#1867)
This commit is contained in:
parent
9d36c61796
commit
a88895b5da
@ -217,7 +217,7 @@ export type ComponentOptionsWithObjectProps<
|
|||||||
EE extends string = string,
|
EE extends string = string,
|
||||||
Props = Readonly<ExtractPropTypes<PropsOptions>>
|
Props = Readonly<ExtractPropTypes<PropsOptions>>
|
||||||
> = ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE> & {
|
> = ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE> & {
|
||||||
props: PropsOptions
|
props: PropsOptions & ThisType<void>
|
||||||
} & ThisType<
|
} & ThisType<
|
||||||
CreateComponentPublicInstance<
|
CreateComponentPublicInstance<
|
||||||
Props,
|
Props,
|
||||||
|
@ -210,6 +210,27 @@ describe('with object props', () => {
|
|||||||
)
|
)
|
||||||
// @ts-expect-error
|
// @ts-expect-error
|
||||||
expectError(<MyComponent b="foo" dd={{ n: 'string' }} ddd={['foo']} />)
|
expectError(<MyComponent b="foo" dd={{ n: 'string' }} ddd={['foo']} />)
|
||||||
|
|
||||||
|
// `this` should be void inside of prop validators and prop default factories
|
||||||
|
defineComponent({
|
||||||
|
props: {
|
||||||
|
myProp: {
|
||||||
|
type: Number,
|
||||||
|
validator(val: unknown): boolean {
|
||||||
|
// @ts-expect-error
|
||||||
|
return val !== this.otherProp
|
||||||
|
},
|
||||||
|
default(): number {
|
||||||
|
// @ts-expect-error
|
||||||
|
return this.otherProp + 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
otherProp: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// describe('type inference w/ optional props declaration', () => {
|
// describe('type inference w/ optional props declaration', () => {
|
||||||
|
Loading…
Reference in New Issue
Block a user