When i try to use default function parameter with typescript, it say 'type 'A | null' is not assignable to parameter A'.
type Pagination = {
page: number
pageSize: number
}
interface SomeArgument {
title: string
pagination: Pagination | null
}
function func (arg:SomeArgument ) {
const {title, pagination = {page: 1, pageSize: 20} } = arg
test(pagination)
// --^^^^^^^^^^^ Argument of type 'Pagination | null' is not assignable to parameter
// of type 'Pagination'.
// Type 'null' is not assignable to type 'Pagination'.(2345)
return {
title, pagination
}
}
function test ( pagination: Pagination){
console.log(pagination)
}
So i change it like
function func (arg:SomeArgument ) {
let { title, pagination } = args
if(!pagination){
pagination = {page: 1, pageSize:20}
}
test(pagination)
return {
title, pagination
}
}
and it work. but it make unnecessary conditional context.
any better?