我正在使用Angle&Typescript开发Ionic4应用程序。我有注册页面,带有更新配置文件按钮的编辑配置文件页面,该按钮会将PUT请求发送到API并更新配置文件。
所以,这是我的问题!
我有一个User.ts类,其中包含名字,姓氏和用户名等,并带有构造函数。在注册页面中,我将发送用户名以及所有其他详细信息。但是,在编辑配置文件页面形式中,用户不应编辑用户名字段。并且用户可以提供其他详细信息,例如中间名,备用电话号码等。
我有一个可以成功注册页面的用户构造函数。现在,我陷入了如何具有多个构造函数来实现这两个功能的困境。
我什至尝试使用User和更新的用户两个单独的接口,并使用参数Obj调用构造函数: IUpdatedUser,但是我不知道如何检查接口和初始化各自的构造函数。下面是我的User类代码
export interface IUser {
firstName: string;
lastName: string;
username: string;
password: string;
email: string;
mobileNumber: string;
}
export interface IUpdateUser {
firstName: string;
middleName: string;
lastName: string;
password: string;
email: string;
phoneNumber: string;
mobileNumber: string;
}
export class User implements User, UpdateUser {
id: number;
firstName: string;
middleName: string;
lastName: string;
username: string;
password: string;
accountId: number = 0;
email: string;
phoneNumber: string;
mobileNumber: string;
// Sign up page construcor
constructor(firstName, lastName, username, password, email, mobileNumber) {
this.username = username;
this.password = password;
this.email = email;
this.firstName = firstName;
this.lastName = lastName;
this.mobileNumber = mobileNumber;
}
// Need generalized or overloaded constructor
// constructor(obj: IUser | IUpdatedUser) {
// I need to check type of interface and intialize respective constructor
// if(typeOf obj === IUser) {
//Initialize sign up constrcutor
// } else {
// Initialize update profile construcor
// }
}
两个不同的构造函数签名或初始化,用于注册和更新概要文件功能。请帮我解决一下这个。预先感谢!