javascript - 将 javascript 对象作为参数传递给函数 - 相当于打字稿
问题描述
我试图更好地理解此示例中的代码: https ://codesandbox.io/s/r5n96yvwnm
所以有这个函数(第 9-11 行):
function MyCell({ value, columnProps: { rest: { someFunc } } }) {
return <a href="#" onClick={someFunc}>{value}</a>
}
它是什么结构,是否可以轻松地将其翻译成 Typescript?我的意思是,我可以继续创建一个包含所有需要的道具的打字稿界面,但我想知道是否有更短的方法可以这样做。我从来没有见过这样的构造,所以任何有更多解释的链接表示赞赏。
谢谢
解决方案
function MyCell({ value, columnProps: { rest: { someFunc } } }) {
这部分使用解构来从对象中提取属性。它与以下内容相同:
function MyCell(props) {
const value = props.value;
const columnProps = props.columnProps;
const rest = columnProps.rest;
const someFunc = rest.someFunc;
使用打字稿执行此操作看起来像这样(我猜测界面中的某些类型):
interface MyCellProps {
value: number;
columnProps: {
rest: {
someFunc: () => void;
}
}
}
function MyCell: React.FC<MyCellProps>({ value, columnProps: { rest: { someFunc } } }) {
return <a href="#" onClick={someFunc}>{value}</a>
}
推荐阅读
- javascript - 监视文本文件中的更改,并在此文件不存在时进行处理
- vue.js - arcgis 草图模块不会安装到 DOM
- sql-server - 当前日期被多次返回?
- c++ - 如何根据引用修饰符进行深拷贝或浅拷贝?
- travis-ci - 在 travis 项目设置下找不到 SSH 密钥设置
- c# - 带有单个空格的意外正则表达式结果
- python-3.x - 为文本分类问题分离句子中的单词
- node.js - 找到更改节点版本的方法
- javascript - 如何使用 Node JS 下载在浏览器中的页面上打开的 html
- user-interface - 场景生成器预览显示比最终结果大得多的所有对象