可选与jsdoc,typescript checkjs(javascript)一起使用useState类型

施佩特

使用打字稿的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

yongming zhuang

我认为您可以使用正确的联合类型定义初始值并将其传递给useState

就像这样:

/**
* @type {number | null}
*/
const initValue = 42;
const [optionalNumber, setOptionalNumber] = useState(initValue)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 TypeScript checkJs 在 JSDoc 中扩展泛型类型的方法?

与可选链接一起使用时,Typescript无法理解未定义的返回类型

如何使用内联JSDoc指示参数是可选的?

类型推断如何与可选参数一起使用?

TypeScript:可选的合并类型

TypeScript:将映射类型与泛型一起使用

无法在TypeScript中将'new'与Function类型一起使用

将instanceof与TypeScript联合类型一起使用 CustomObject []

不能将pouchdb与Typescript一起使用?类型问题?

如何与JavaScript一起使用TypeScript声明文件

如何将 TypeScript 的索引访问类型与可为空的嵌套类型一起使用?

用于JavaScript reducer累加器的Typescript的JSDoc类型

如何让 VS Code 或 Typescript 使用我的 JSDoc 类型

如何使jsdoc与Django模板标签一起使用?

将 TypeScript 与 DataTables 一起使用,如何计算出“this”的正确类型

将MomentJS与TypeScript一起使用-moment()有什么类型?

获取props.dispatch()的类型定义,以将TypeScript与React-Redux一起使用

在TypeScript中将类型永不与接口/类实现一起使用

将typescript ReturnType与keyof和通用类型的迭代键一起使用

在TypeScript中将泛型与映射的条件类型一起使用

将Typescript与React-Redux一起使用时出现类型错误

TypeScript中类型参数的可选计数

带有TypeScript的可选通用类型

在TypeScript类型中使某些属性为可选

Typescript类型断言-与可选成员的接口

TypeScript 忽略类型为 never 的可选参数

TypeScript条件类型解析和可选属性

TypeScript接口的可选属性和返回类型

Oracle-索引与可选参数一起使用