React 组件中申明 props:
interface Props {
onClick?: () => void;
}
const Text: FC<Props> = (props) => {
return <div onClick={props.onClick}/>;
};
调用的时候:
<Test onClick={() => { return '123'; }}>
为什么不会报错呢?不是申明 void 类型了吗?
React 组件中申明 props:
interface Props {
onClick?: () => void;
}
const Text: FC<Props> = (props) => {
return <div onClick={props.onClick}/>;
};
调用的时候:
<Test onClick={() => { return '123'; }}>
为什么不会报错呢?不是申明 void 类型了吗?
ts 的 void 类型指的是“不关心返回值是什么”的意思,可以看看官方文档:return-type-void。这个关键字是为了一些场景下编码方便(更加简洁),比如官方的例子:
void is not the same as undefined.
const src = [1, 2, 3];
const dst = [0];
src.forEach((el) => dst.push(el));
如果申明不是 void 类型,你只能写成:
const src = [1, 2, 3];
const dst = [0];
src.forEach((el) => { return dst.push(el); });
是不是麻烦很多,如果要明确函数无返回类型,应该用 undefined
:
interface Props {
onClick?: () => undefined;
}