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,
|
||||
Props = Readonly<ExtractPropTypes<PropsOptions>>
|
||||
> = ComponentOptionsBase<Props, RawBindings, D, C, M, Mixin, Extends, E, EE> & {
|
||||
props: PropsOptions
|
||||
props: PropsOptions & ThisType<void>
|
||||
} & ThisType<
|
||||
CreateComponentPublicInstance<
|
||||
Props,
|
||||
|
@ -210,6 +210,27 @@ describe('with object props', () => {
|
||||
)
|
||||
// @ts-expect-error
|
||||
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', () => {
|
||||
|
Loading…
Reference in New Issue
Block a user