Mes*_*ine 2 javascript typescript angular
我正在尝试使用 Angular 创建一个 TS User 类。我声明了我的属性,如下面的代码所示,但我收到此错误。
未提供“id”的参数。
export class User {
private id: number;
private etabName: string;
constructor(id: number, etabName: string, ) {
this.id = id;
this.etabName = etabName;
}
get _id(): number {
return this. id;
}
set _id(value: number) {
this. id = value;
}
}Run Code Online (Sandbox Code Playgroud)
当您尝试在不传递参数的情况下实例化该类时,就会出现此问题,因为您没有指定参数是可选的。
像这样使参数可选
export class User {
...
constructor(id?: number, etabName?: string, ) {
this.id = id || 0; //Specify default value
this.etabName = etabName || ''; //Specify default value
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后你可以实例化没有参数的类
const user = new User();//works
Run Code Online (Sandbox Code Playgroud)
您可以使用下面的语法更好地编写它,Typescript 将负责创建属性并为其分配默认值。
class User {
constructor(private id: number = 0, private etabName: string = '') {
}
...setters and getters omitted for readability
}
Run Code Online (Sandbox Code Playgroud)
上面的 typescript 将转换为下面的 javascript
class User {
constructor(id = 0, etabName = '') {
this.id = id;
this.etabName = etabName;
}
...setters and getters omitted for readability
}
Run Code Online (Sandbox Code Playgroud)