跳到主要内容

使用 void 操作符返回

· 阅读需 1 分钟
1adybug
子虚伊人

有的时候,某些函数类的参数类型是 () => (undefined | SomeType),如果我们使用箭头函数的话,就会出现返回类型不匹配的情况,比如:

import { useEffect } from "react"

useEffect(() => setTimeout(() => console.log("Hello"), 1000), [])

这时候,编辑器会给我们报错 不能将类型“Timeout”分配给类型“void | Destructor”,我们可以使用 {}console.log("Hello") 包裹起来:

import { useEffect } from "react"

useEffect(
() =>
setTimeout(() => {
console.log("Hello")
}, 1000),
[],
)

但是这样的话,代码会变得很臃肿,我们可以使用 void 操作符来解决这个问题:

import { useEffect } from "react"

useEffect(() => void setTimeout(() => console.log("Hello"), 1000), [])

大功告成!