为什么 React props 可以采用带签名的异步函数() => void
而不是() => Promise<void>
签名而不会出现类型错误?是有意为之还是误用?
interface Props {
onFunc: () => void
}
const Child = ({onFunc}: Props) => {
// something
}
const Parent = ({onFunc}: Props) => {
const func: () => Promise<void> = async () => {
// something
}
return <Child onFunc={func}>
}
返回类型
void
仅仅意味着函数返回值的类型被忽略/不使用——即使它是隐式的undefined
……或者在异步函数的情况下是一个承诺。 TypeScript 手册中的“函数的可分配性”部分对此进行了解释: