使用打字稿的jsdoc支持键入以下javascript代码:
const [optionalNumber, setOptionalNumber] = useState(null)
const handleClick = () => {
setOptionalNumber(42)
// ^-- Argument of type '42' is not assignable to parameter of type 'SetStateAction<null>'
}
我目前解决这个问题的方式可行,但有点难看:
const [optional, setOptional] = useState(
/** @type {number|null} */ (null)
)
我如何在不使用强制转换的情况下完成此任务?我想要optional
一种类型null | number
,并且setOptional
只接受null | number
作为参数。
展示此代码的盒子:https ://codesandbox.io/s/optimistic-villani-kbudi?fontsize
=14
我认为您可以使用正确的联合类型定义初始值并将其传递给useState
。
就像这样:
/**
* @type {number | null}
*/
const initValue = 42;
const [optionalNumber, setOptionalNumber] = useState(initValue)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句