javascript - 在 Create-React-App 中键入具有解构赋值参数的函数时出现意外标记
问题描述
我目前正在尝试为其参数实现解构分配语法的函数定义类型,例如
type somefunc = ({name} : {name: string}) => boolean;
它给了我以下编译时错误:
./src/App.tsx SyntaxError: /apps/src/App.tsx: Unexpected token, expected ")" (9:24)
它突出显示了和:
之间的错误。但是,我知道这是为函数键入解构赋值参数的预期方式。{name}
{name: string}
我的节点版本是node v10.13.0
,而我的 react-scripts 版本是react-scripts v2.1.1
,它应该是最新的。
我怎样才能让编译器理解这种语法?
解决方案
如果你想在函数类型的声明中键入参数,你应该这样写:
type somefunc = (param : {name: string}) => boolean;
它说,函数 ( =>
) 返回 aboolean
并接受一个类型为 object 的参数,{...}
其属性name
为 type string
。
然后你可以在函数的定义中使用解构:
const myfn: somefunc = ({name}) => {
console.log('Name: ', name);
return true;
}
myfn({name: 'John'});
推荐阅读
- java - 使用 Apache CXF WebClient 在 WAS 8.5 中获取证书链接错误
- powershell - Azure 管道的 PowerShell 任务无法加载私有 npm 包
- angular - 为 p-table 导出提供自定义文件名
- kubernetes - GKE 不会将节点缩减为零
- extjs - 如何在 ExtJS 中的 numberfield 中实现远离零的中点舍入?
- javascript - 在 drupal 8 中创建一个 js rangeslider
- c# - 将泛型方法 + arg 类型 + 返回类型存储在列表中以供稍后调用
- css - Genesis Framework - 如何在移动设备的同一行上获取徽标和汉堡菜单
- rest - 将参数传递给 Delphi Datasnap REST 服务器
- php - Laravel错误尝试使用relashionship过滤时获取非对象的属性