gpt4 book ai didi

typescript 接口(interface)变量空检查并设置默认值

转载 作者:行者123 更新时间:2023-12-05 09:36:57 27 4
gpt4 key购买 nike

如何检查接口(interface)变量是否为空以及如何在 typescript 中设置默认值?

const userModel = snap.data() as UserModel //firestore

export interface UserModel {
docId: string,
accountId: number // if null then I want to set 0
}

有时,用户没有帐户 ID。那么如何检查呢?

if (userModel.userPushToken !== undefined) - 目前我正在这样检查

最佳答案

接口(interface)中的初始化器

在 Typescript 中,接口(interface)只是对对象外观的描述,不能包含任何函数。因此,您不必像处理类那样构造接口(interface)。因此,您无法在界面中进行任何初始化。
如果您将 typescript 接口(interface)编译为 javascript,typescript 编译器只会将其删除,因为它除了提高可读性和提供类型检查外没有任何功能。
如果你想初始化一个变量,我建议你将接口(interface)更改为一个类:

export class MyUserModel implements UserModel{
public docId: string;
public accountId: number

constructor(usrmodel:UserModel){
this.docId = usrmodel.docId || ""; // Initialize with "" if docId is null or undefined
this.accountId = usrmodel.accountId || 0; // Initialize with 0 if accountid is null or undefined
}
}

或者为接口(interface)写一个“复制构造函数”:

function InitUserModel(usrModel:UserModel):UserModel{
usrModel.accountId = usrModel.accountId || 0;
return usrModel;
}

检查是否为 null 或 undefined

这方面有很多好的帖子。例如Is there a way to check for both `null` and `undefined`?

关于 typescript 接口(interface)变量空检查并设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64693053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com