Системное оповещение о неправильном переносе слов при использовании строк локализации

Этот код TypeScript

class A {
    private a1;
    public a2;
}

компилируется в этот код JavaScript

class A {
}

Это связано с тем, что свойства в JavaScript начинаются только после того, как они имеют некоторое значение. Вы должны назначить свойства некоторым значениям.

class A {
    private a1 = "";
    public a2 = "";
}

он компилируется в

class A {
    constructor() {
        this.a1 = "";
        this.a2 = "";
    }
}

Тем не менее вы не можете получить свойства из простого класса (вы можете получить только методы из прототипа ). Вы должны создать экземпляр. Затем вы получите свойства, вызвав Object.getOwnPropertyNames().

let a = new A();
let array = return Object.getOwnPropertyNames(a);

array[0] === "a1";
array[1] === "a2";

Применяется к вашему примеру

class Describer {
    static describe(instance): Array<string> {
        return Object.getOwnPropertyNames(instance);
    }
}

let a = new A();
let x = Describer.describe(a);
0
задан timyau 28 March 2019 в 03:58
поделиться