打字稿中类和对象的区别

问题描述 投票:0回答:2

有人可以向我解释打字稿中类和对象之间的区别。

class greeter{
  Name: string;
  Sayhello(){
    console.log("hello")
  }
}

在我使用这个之前

var greeter = {
    Name : "",
    Sayhello: function sayhello(){
        console.log("hello");
    }
}
javascript typescript ecmascript-5
2个回答
8
投票

这取决于你。这两个都是有效且惯用的 TypeScript:

export class Greeter {

    name: '';

    sayHello() {
        console.log('hello');
    }
}

export const greeter = {

    name : '',

    sayHello: () => {
        console.log('hello');
    }
}

// if you need just the type of greeter for some reason
export type Greeter = typof greeter; 

如果您不需要该课程,请不要使用它们。

但是如果您愿意,您可能会发现课程的好处:

  • 通过依赖注入管理你的依赖关系
  • 使用多个实例
  • 使用多态性

如果您有多个实例,使用类或原型构造函数,允许您在所有实例之间共享方法实现。

即使您处于纯函数范式中,使用原型构造函数或类对于创建 monad 也很有用。

如果你只有一个实例,并且不需要构造函数,那么对象可能就可以了。


7
投票

存在许多差异。在基本层面上,类是一个对象,可用于创建具有特定形状和功能的其他对象。它为功能提供了语法糖,而使用普通对象和函数需要做更多的工作才能完成。

您应该花一些时间阅读《TypeScript 手册》中的类,因为详细回答您的问题相当于编写一本书的几章,尤其是在针对 TypeScript 进行定制时。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.