首页 > 解决方案 > 在 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,它应该是最新的。

我怎样才能让编译器理解这种语法?

标签: javascriptreactjstypescriptcreate-react-app

解决方案


如果你想在函数类型的声明中键入参数,你应该这样写:

type somefunc = (param : {name: string}) => boolean;

它说,函数 ( =>) 返回 aboolean并接受一个类型为 object 的参数,{...}其属性name为 type string

然后你可以在函数的定义中使用解构:

const myfn: somefunc = ({name}) =>  {
    console.log('Name: ', name);
    return true;
}

myfn({name: 'John'});

推荐阅读