如何将这个类重写为普通对象?
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
将方法复制到一个新对象上。或者将对象文字放在可以多次调用的函数中。