Reactjs 带有get函数的Typescript类型
我正在寻找一种在React中为类型对象定义getter的方法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
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()}