我有这两个接口
export interface Contact {
first_name: string;
last_name: string;
emails?: (EmailsEntity)[] | null;
company: string;
job_title: string;
}
export interface EmailsEntity {
email: string;
label: string;
}
字符串
用括号中的EmailsEntity
赋值emails?: (EmailsEntity)[] | null;
是什么意思?
与这个符号有什么区别:emails?: EmailsEntity[] | null;
?
4条答案
按热度按时间gmol16391#
实际上什么都不是。语法方面,它类似于:
字符串
在这种情况下,括号的使用是不必要的。只有当涉及到改变操作符的优先级时才需要。阅读更多关于operator precedence的内容,您可能会了解整个情况。
xienkqul2#
(EmailsEntity)[]
和EmailsEntity[]
之间没有差异。Typescript允许()
,因为在使用某些类型运算符时,需要修改运算符的默认优先级。除非()
是函数签名的一部分,否则它们在类型中没有任何其他含义。krcsximq3#
下面是一个例子,其中括号确实很重要:
字符串
&
(交集)运算符的优先级高于|
(并集)运算符。括号将更改优先级。rjee0c154#
在给定的示例中,不存在差异。但是,请考虑以下示例:
字符串
在上文中,三个数组的类型注解包括parantheses。具有此类型注解的数组可以有所有数字,所有字符串,或两者的混合!
现在看看这个例子:
型
在此示例中,三个数组的类型注解不包括括号。具有此类型注解的数组可以有所有数字或所有字符串,但不能两者的混合**。