我有一堂课:
class Person {
name: string;
age: number;
gender: string;
constructor(params: any){
this.name = params.name;
this.age = params.age;
this.gender = params.gender;
}
}
我如何从类中获取与以下类型Person
等效的类型:
type PersonType = {
name: string;
age: number;
gender: string;
}
因此我可以将其用于构造函数params类型。我不想重复代码来编写类似上面代码的类型定义。我正在寻找一种从类定义中获取类型的方法。
我不想重复以下代码:
name: string;
age: number;
gender: string;
只需指定类作为类型
class Person {
name: string;
age: number;
gender: string;
constructor(params: Person) {
this.name = params.name;
this.age = params.age;
this.gender = params.gender;
this.gender = params.gender2; // error
}
}
const test1 = new Person({ age: 1, gender: '1', name: '1' });
const test2 = new Person({ age: 1, gender: '1' }); // error
或者,您可以使用Object.assign一次初始化所有字段,但随后需要为所有字段指定默认值
class Person {
name: string = "default";
age: number = 0;
gender: string = "default";
constructor(params: Person) {
Object.assign(this, params);
}
}
const test3 = new Person({ age: 1, gender: '1', name: '1' });
const test4 = new Person({ age: 1, gender: '1' }); // error
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句