请教个 ts 的问题:函数 void 返回类型为什么不会报错?
React 组件中申明 props:
tsx
interface Props {
onClick?: () = void;
}
const Text: FC<Props = (props)
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;
}