Class 和打字稿中的对象之间的区别
Difference between Class and Object in typescript
谁能给我解释一下 class 和打字稿中的对象有什么区别。
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;
如果您不需要 class,请不要使用它们。
但是如果您想要,您可能会发现 classes 的好处:
- 使用依赖注入管理你的依赖关系
- 使用多个实例
- 使用多态
如果您有多个实例,使用 classes 或原型构造函数,允许您在所有实例之间共享方法实现。
即使您处于纯函数范式中,使用原型构造函数或 classes 也可用于创建 monad。
如果您只有一个实例,并且不需要构造函数,那么一个对象可能就可以了。
存在 许多 差异。在基本层面上,class 是一个对象,可用于创建具有特定形状和功能的其他对象。它为使用普通对象和函数完成更多工作的功能提供语法糖。
您应该花一些时间阅读 TypeScript Handbook 中的 class 内容,因为详细回答您的问题等同于写一本书的几章——尤其是在对其进行剪裁时对于 TypeScript。
谁能给我解释一下 class 和打字稿中的对象有什么区别。
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;
如果您不需要 class,请不要使用它们。
但是如果您想要,您可能会发现 classes 的好处:
- 使用依赖注入管理你的依赖关系
- 使用多个实例
- 使用多态
如果您有多个实例,使用 classes 或原型构造函数,允许您在所有实例之间共享方法实现。
即使您处于纯函数范式中,使用原型构造函数或 classes 也可用于创建 monad。
如果您只有一个实例,并且不需要构造函数,那么一个对象可能就可以了。
存在 许多 差异。在基本层面上,class 是一个对象,可用于创建具有特定形状和功能的其他对象。它为使用普通对象和函数完成更多工作的功能提供语法糖。
您应该花一些时间阅读 TypeScript Handbook 中的 class 内容,因为详细回答您的问题等同于写一本书的几章——尤其是在对其进行剪裁时对于 TypeScript。