When using yup
v0.32.8 with TypeScript, we are getting the TS error message
Argument of type 'Reference' is not assignable to parameter of type 'number | Reference'. Type 'Reference' is not assignable to type 'Reference'. Type 'unknown' is not assignable to type 'number'.ts(2345)
when we attempt to use the Yup.ref()
function with Yup.moreThan()
, such as in this SO question that does not use TypeScript.
Why is this error being raised when using TypeScript, and how can we fix it? Thanks!
import * as Yup from 'yup';
const schema = Yup.object().shape({
minPrice: Yup
.number()
.positive('Must be positive')
.integer('Must be an integer')
.required('Required'),
maxPrice: Yup
.number()
.positive('Must be positive')
.integer('Must be an integer')
.moreThan(Yup.ref('minPrice')) // <- ERROR HERE!
.required('Required'),
})
Update:
Changing to
maxPrice: Yup
.number()
.positive('Must be positive')
.integer('Must be an integer')
.moreThan(Yup.ref<number>('minPrice'))
.required('Required'),
results in the error
Argument of type 'Reference' is not assignable to parameter of type 'number | Reference'. Type 'Reference' is not assignable to type 'Reference'. Type 'unknown' is not assignable to type 'number'. TS2345