Javascript typescript中类和对象之间的差异

Javascript typescript中类和对象之间的差异,javascript,typescript,ecmascript-5,Javascript,Typescript,Ecmascript 5,有人可以解释typescript中类和对象的区别 class greeter{ Name: string; Sayhello(){ console.log("hello") } } 在我用这个之前 var greeter = { Name : "", Sayhello: function sayhello(){ console.log("hello"); } } 这取决于你。这两种类型都是有效且惯用的TypeScript: clas

有人可以解释typescript中类和对象的区别

class greeter{
  Name: string;
  Sayhello(){
    console.log("hello")
  }
}
在我用这个之前

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

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

class Greeter {

    name: string;

    sayHello() {
        console.log("hello")
    }
}

如果你不需要这个课程,就不要使用它们

但如果您想:

  • 导出类型定义
  • 使用依赖项注入管理您的依赖项
  • 单元测试你的代码
  • 使用多个实例
  • 使用多态性
我怀疑你可能没有做这些

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


您应该花一些时间阅读中的类,因为详细回答您的问题相当于写几章书,特别是在为TypeScript定制时。

请花时间将问题中的代码正确格式化,请注意,TypeScript和JavaScript都是区分大小写的语言。如果你不能费心把问题弄清楚和正确,为什么其他人要费心把它回答清楚和正确呢?好的,你收到的答案回答了问题开头的问题,所以我去掉了结尾的离题答案。(注意:SO是一个非常活跃的地方,请不要问也不要跑。留下来,这样你就可以在回答问题时澄清你的问题。)在示例1中:
(新迎宾员)。Name
是一个字符串在示例2中:
迎宾员。Name
是一个字符串他们不一样。你的回答暗示了一些我确信你知道是不正确的事情:他们做了同样的事情。他们没有,你可能想澄清他们每个人都做了什么(因为我认为OP对此感到困惑)。“导出类型定义”-你能澄清这一点吗?变量声明也有一个类型,因此您可以编写表示它的定义。否。我的回答并不意味着他们做同样的事情。恰如其分,它意味着如果您需要实例、DI、测试、导出类型、多态性,您可以使用其中一个,如果您不使用另一个。@DavidHerret是的,您是对的,您可以执行
export var greeter
并将显式类型绑定到文字对象。你不能做的是有一个抽象类型,比如说另一种实现了greeter类型的“种类”greeter。
var greeter = {

    name : "",

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