如何将类重写为普通对象?



如何将这个类重写为普通对象?

class ExampleClass {
firstPropery: number = 0;
secondProperty!: string;
async exampleMethod(): Promise<void> {
const { secondProperty } = await SomeHelperClass.exampleRequest();
this.secondProperty = secondProperty;
}
}

我想应该是这样的

interface IExample {
firstProperty: number;
secondProperty: string;
exampleMethod: () => Promise<void>;
}
const Example: IExample = {
firstProperty: 0,
exampleMethod: async (): Promise<void> => {
const { secondProperty } = await SomeHelperClass.exampleRequest();
...
}
}

但是如何通过exampleMethod来设置secondProperty呢?在类方法中,我只能写this.secondProperty = ...,这在普通对象中是做不到的。

我的第二个问题是,与类我将使一个新的对象像这样的const newObject = new ExampleClass();。使用普通对象的方式,如何创建一个新的对象实例?

任何帮助都很感激!

在类方法中,我只能写this.secondProperty = ...,这在普通对象中是做不到的。

事实上你可以。不管它是定义在类中还是对象字面量中,exampleMethod仍然是一个方法,当作为example.exampleMethod()调用时,它的this将指向example。但是,您不能使用箭头函数来定义它-而是使用方法语法:

const example: IExample = {
firstProperty: 0,
async exampleMethod(): Promise<void> {
const { secondProperty } = await SomeHelperClass.exampleRequest();
...
}
}

用这个类,我将创建一个像这样的新对象const newObject = new ExampleClass();。使用普通对象的方式,如何创建一个新的对象实例?

你一遍又一遍地写代码。或者使用Object.assign将方法复制到一个新对象上。或者将对象文字放在可以多次调用的函数中。

相关内容

  • 没有找到相关文章

最新更新