我不明白为什么Typescript在抱怨这段代码。
interface PaginationOptions {
size?: number
page?: number
}
function test(options?: PaginationOptions) {
const size = options && 'size' in options ? options.size : 100
// Typescript complains about `size` and `options.page` possibly undefined.
const from = options && 'page' in options ? size * (options.page - 1) : 0
return {
size,
from,
}
}
'size' in options
是否应该扮演类型保护者的角色?
答案 0 :(得分:1)
因此,我对in
运算符的理解不正确。 'key' in obj
甚至在{ key: undefined }
中也是正确的(正如@acdcjunior在评论中指出的那样。
因此,我选择将代码更改为此进行修复:
function test(options?: PaginationOptions) {
const size = options && typeof options.size === 'number' ? options.size : 100
const from = options && typeof options.page === 'number' ? size * (options.page - 1) : 0
return {
size,
from,
}
}