const router = useRouter()
const { photoId } = router.query
进行比较时,我收到此 Typescript 警告:
TS2367:此条件将始终返回“false”,因为类型“number”和“string | string[]’ 没有重叠。
这很有道理,所以我这样输入我的变量:
const router = useRouter()
const { photoId } = parseInt(router.query, 10)
但现在我收到这个警告:
TS2345:“ParsedUrlQuery”类型的参数不可分配给“字符串”类型的参数。
当我查看 NextJS 路由器的源代码时,我看到了这个:
interface ParsedUrlQuery extends NodeJS.Dict<string | string[]> { }
看起来我非常接近获得我需要的东西,它只是一个字符串而不是字符串或字符串数组。我从这里去哪里?
原文由 Citizen 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以告诉编译器应该如何处理变量:
请注意,
router.query
的属性可以是undefined
。