Reactjs TypeError:无法分解属性';名称';属于';未定义';因为它是未定义的

Reactjs TypeError:无法分解属性';名称';属于';未定义';因为它是未定义的,reactjs,ecmascript-6,Reactjs,Ecmascript 6,在一个新的reactjs项目中,我有以下基本代码: type User = { name: ?string, age: ?string, }; const getUserName = ({name,age,}: User): ?string => name; 告诉我这个错误: TypeError: Cannot destructure property 'name' of 'undefined' as it is undefined. 这是什么意思 我不是在上面定义了用户及其名

在一个新的reactjs项目中,我有以下基本代码:

type User = {
  name: ?string,
  age: ?string,
};
const getUserName = ({name,age,}: User): ?string => name;
告诉我这个错误:

TypeError: Cannot destructure property 'name' of 'undefined' as it is undefined.
这是什么意思

我不是在上面定义了用户及其名称吗?!为什么说我不是

目的是:

const someUser = { name: "John", age: "12" }
const userName = getUserName(someUser)
console.log(userName)// should output 'John'

谢谢大家的帮助! 结果是,一旦添加了流,它就丢失了,所有的工作都很好

工作守则的最终版本为:

type User = {
  name: ?string,
  age: ?string,
};
const getUserName = ({name,age,}: User): ?string => name;

const someUser = { name: "John", age: "12" }
const userName = getUserName(someUser)
console.log(userName)// should output 'John'

你需要在
getUserName
中传递一个形状为{name,age}的对象。目前你没有传递任何参数。谢谢,仅供参考,我是一名后端工程师,所以所有这些反应功夫对我来说都是新的:),我以为我在这里传递了一个参数“({name,age,}:User)”,那是什么呢?@jakstack你在声明一个函数,介于
()
是箭头函数的参数。这里是一个输入对象的参数,它的类型是
User
。这里是定义函数在您的情况下接受的参数,它是一个
对象,形状为
{name,age}
,您正在分解该对象。您想将此函数用作
getUserName({name:“John”,age:12})
这是类型脚本还是流?您是遇到运行时错误还是编译时类型错误?