我试图更好地理解这个示例中的代码:https://codesandbox.io/s/r5n96yvwnm
所以这里有这个函数(第9-11行):
function MyCell({ value, columnProps: { rest: { someFunc } } }) {
return <a href="#" onClick={someFunc}>{value}</a>
}
它是什么结构,有没有可能很容易地把它翻译成Typescript?我的意思是,我可以继续创建一个带有所有需要的道具的typescript界面,但我想知道,是否有更短的方法来做到这一点。我从来没有见过这样的结构,所以任何有更多解释的链接都很感谢。
谢谢
发布于 2019-06-17 22:24:10
function MyCell({ value, columnProps: { rest: { someFunc } } }) {
这一部分是使用destructuring来提取对象的属性。等同于:
function MyCell(props) {
const value = props.value;
const columnProps = props.columnProps;
const rest = columnProps.rest;
const someFunc = rest.someFunc;
用typescript做这件事看起来像这样(我猜是界面中的一些类型):
interface MyCellProps {
value: number;
columnProps: {
rest: {
someFunc: () => void;
}
}
}
function MyCell: React.FC<MyCellProps>({ value, columnProps: { rest: { someFunc } } }) {
return <a href="#" onClick={someFunc}>{value}</a>
}
发布于 2019-06-17 22:25:22
听起来参数把你搞糊涂了。MyCell
是一个只接受一个参数的函数。该参数应该是具有value
和columnProps
属性的对象。columnProps
也应该是一个具有rest
属性的对象。与prop someFunc
一样,rest
也被认为是一个obj。
这称为object destructuring
,在参数中使用它的特定情况下,称为unpacking
(mdn)。
https://stackoverflow.com/questions/56633202
复制相似问题