将类与构造函数对象一起使用

时间:2019-06-23 13:51:10

标签: typescript constructor axios

我正在尝试在另一个类中使用带有构造函数对象的类。但是,如何正确地调用该类呢?例如:如何在2类中使用1类?

下面的示例根据axios调用的响应创建对象。 File.ReadLines(targetfile).ForEach(line => { File.AppendAllText("path", string.Join(":", Regex.Split(line, "@|:") .Cast<Match>().Select(m => m.Value))); }); static class ExtensionMethods { internal static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action) { if (enumerable == null) throw new NullReferenceException($"'{nameof(enumerable)}' argument is null"); using var enumerator = enumerable.GetEnumerator(); while (enumerator.MoveNext()) action(enumerator.Current); } } 应该是我从_object得到的。我不确定这是否是正确的方法。但是我该如何在另一个类中使用构造函数调用此类?理想情况下,我希望能够查询对象的属性,并在其他类中使用它们,但是我不确定如何正确调用该类。

第1类:

getData()

尝试通过构造函数对象在另一个类中使用它:

第2类:

export class MyClass {

    private _object: any;

    constructor(object: any) {
        this._object = object;
    }

    public static async getData() {
        return axios.get(url)
            .then(response => response.data)
            .catch((error) => {
                console.log(error);
            });
    }

    public static async getCurrentData() {
        return new MyClass(await this.getData());
    }

}

new MyClass(object);  // cannot find name object

我在这里问了相关问题: return properties of constructor object

1 个答案:

答案 0 :(得分:0)

您的构造函数需要一个对象作为其参数。因此,要构造MyClass的对象,您需要执行以下操作:

let obj = new MyClass({}) // construct with an empty object as the arg
// or:
let argObj = {a: 123}
let obj = new MyClass(argObj)