用 typescript 想输出这么一个对象:
//Person
{
name: string;
eat: Function;
}
1:
class Person {
public name: string;
constructor(name: string) {
this.name = name;
}
eat() {
console.log(this.name + 'eat!');
}
// ...
}
// 实例
let person = new Person('Mike');
person.eat();
2:
interface Person {
name: string;
eat: Function;
}
const createPerson: Function = (name: string): Person => {
let person: Person = {
name,
eat: () => eat(name),
};
// ...
return person;
}
const eat: Function = (name: string): void => {
console.log(name + 'eat!');
}
// 实例
let person: Person = createPerson('Mike');
person.eat();
从工程化的角度,一般建议是用哪种方式实现要好些呢?
class 主要是用来封装数据和方法。纯数据用 interface 纯工具用 function。
所以是不是多用 class,取决于你的设计,是不是需要封装某些数据以及对他们进行操作的若干方法。
这个,跟工程化好像没啥关系。