typescript 应该多用 class 吗?

用 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();

从工程化的角度,一般建议是用哪种方式实现要好些呢?

阅读 1.2k
1 个回答

class 主要是用来封装数据和方法。纯数据用 interface 纯工具用 function。

所以是不是多用 class,取决于你的设计,是不是需要封装某些数据以及对他们进行操作的若干方法。

这个,跟工程化好像没啥关系。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题