Typescript Angular:如果未定义(未使用),默认将所有类成员设置为 Null
Posted
技术标签:
【中文标题】Typescript Angular:如果未定义(未使用),默认将所有类成员设置为 Null【英文标题】:Typescript Angular: Default Set All Class Members to Null if Undefined (not used) 【发布时间】:2020-05-23 01:47:04 【问题描述】:有没有一种简单的方法可以在 Typescript 类中将所有值设置为 null,而无需像这样重复手动复制和粘贴。想要遵循 Dry 原则(不要重复自己)。如果未定义,我希望所有值都自动设置为 null。
export class PropertySitusAddress
primaryPropertyMailingAddressId?:number = null;
propertyId?:number = null;
propertySitusAddressId?:number = null;
addressFormatId?:number = null;
apn?: string = null;
owner?: string = null;
situsAddress?:string = null;
primaryMailingAddress?:string = null;
streetNumber?: string = null;
situsFromNumber?: string = null;
situsThroughNumber?: string = null;
fractional?: string = null;
predirectional?: string = null;
【问题讨论】:
【参考方案1】:首先,你的输入是错误的?
并不意味着该值可以是null
它意味着它可以是undefined
。
对于您的问题,请考虑 javascript 输出,您实际上希望将所有字段设置为 null
,因此无法分配它。但是,您可以简写作业,但我不确定它是否会减少打字:
export class PropertySitusAddress
primaryPropertyMailingAddressId?: number | null;
propertyId?: number | null;
propertySitusAddressId?: number | null;
addressFormatId?: number | null;
apn?: string | null;
owner?: string | null;
situsAddress?: string | null;
primaryMailingAddress?: string | null;
streetNumber?: string | null;
situsFromNumber?: string | null;
situsThroughNumber?: string | null;
fractional?: string | null;
predirectional?: string | null;
constructor()
this.primaryPropertyMailingAddressId =
this.propertyId =
this.propertySitusAddressId =
this.addressFormatId =
this.apn =
this.owner =
this.situsAddress =
this.primaryMailingAddress =
this.streetNumber =
this.situsFromNumber =
this.situsThroughNumber =
this.fractional =
this.predirectional = null;
我想最好的建议是使用带有multi-cursor functionality (e.g. vscode)的编辑器
【讨论】:
【参考方案2】:如果您将使用 PropertySitusAddress 作为接口,则属性不能有默认值,请参阅this SO 问题以了解其他解决方法。
如果您将它们设为可选,那么无论如何这些属性将具有未定义的默认值。
如果这些属性没有在接口中使用,那么您可以按照@DoronG 的方式实现它,或者您可以这样做:-
primaryPropertyMailingAddressId: number | null = null;
【讨论】:
什么是 |竖线运算符?试图用谷歌搜索它,得到一些关于管道的东西,但那是 html 是的,在 html 中它用于管道。这意味着您的属性可以是 number 或 null 。仅供参考-typescriptlang.org/docs/handbook/… 嗨,阿南德,接受了答案并给出了分数,也请随意竖起大拇指,谢谢以上是关于Typescript Angular:如果未定义(未使用),默认将所有类成员设置为 Null的主要内容,如果未能解决你的问题,请参考以下文章
Angular 与 Typescript 和指令中未定义的注入服务
Angular2,TypeScript,如何读取/绑定属性值到组件类(在 ngOnInit 中未定义)[重复]
从Angular TypeScript中来自firestore的数据中获取未定义