Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 带有get函数的Typescript类型_Reactjs_Typescript - Fatal编程技术网

Reactjs 带有get函数的Typescript类型

Reactjs 带有get函数的Typescript类型,reactjs,typescript,Reactjs,Typescript,我正在寻找一种在React中为类型对象定义getter的方法 type User= { firstName?: string lastName: string age: number } 在我的React组件中,我想主要显示firstName,如果firstName未定义,则显示lastName。此逻辑还包括分配,例如author=u.firstName??u、 lastName 如何定义一个getter来确保逻辑在整个应用程序中得到一致的使用?比如: author = u.get

我正在寻找一种在React中为类型对象定义getter的方法

type User= {
  firstName?: string
  lastName: string
  age: number
}
在我的React组件中,我想主要显示
firstName
,如果
firstName
未定义,则显示
lastName
。此逻辑还包括分配,例如
author=u.firstName??u、 lastName

如何定义一个getter来确保逻辑在整个应用程序中得到一致的使用?比如:

author = u.getName()
在代码和:

{{u.getName()}
在模板中


根据我的研究,似乎我应该将
类型
替换为
,以便能够声明成员函数。您知道
type
是否支持成员函数吗?

您可以轻松定义具有函数/方法的类型:

类型用户={
名字:字符串;
lastName:string;
年龄:人数;
getFullName():字符串;
};
但它只是它的名字所暗示的:一个类型。它没有任何作用。棘手的部分是设置值:

const u:User={
名字:“约翰”,
姓:“Doe”,
年龄:30,,
getFullName(){
返回this.firstName+“”+this.lastName;
}
}

如果您不想每次都定义
getFullName
方法,您可能应该这样做。

似乎值得注意的是,对于您当前的类型,
firstName
不能被取消定义。(那将是
firstName?:string
)感谢您指出:)您还可以定义一个format函数,它接受任何可能有名字但至少有姓氏的内容,而不是使用类,并返回格式化的字符串。这样,即使不是
用户
的类型,也可以重复使用格式功能。完美!一个问题:我在React组件中尝试了这一点,但得到错误:当我尝试在模板中呈现命令时,函数作为React子级无效,这是因为getFullName是一个函数。你可能应该使用一个类。不,你是对的:)我忘了用括号来调用模板中的函数。{u.getFullName()}