繁体   English   中英

打字稿中类和对象之间的区别

[英]Difference between Class and Object in typescript

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

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

在我使用这个之前

var greeter = {
    Name : "",
    Sayhello: function sayhello(){
        console.log("hello");
    }
}

它是由你决定。 这两个都是有效且惯用的 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 也很有用。

如果您只有一个实例,并且不需要构造函数,则对象可能没问题。

很多不同之处。 在基本层面上,类是一个对象,可用于创建具有特定形状和功能的其他对象。 它为功能提供了语法糖,使用普通对象和函数需要做更多的工作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM