[TypeScript] Problem z kompilacją klasy abstrakcyjnej

2

Mam problem z kawałkiem kodu, i nie bardzo mogę znaleźć rozwiązanie. Myślałem, że może zmniejszenie restrykcji kompilatora coś pomoże ale tu narodził się problem - nie wiem co mogę zmienić żeby zlikwidować problem :]

abstract class Project1 {
    projectName: string = 'Default';
    budget: number;

    abstract solutionName(name: string): void;

    taxBudget() {
        return this.budget * 0.2;
    }
}

Output:

script4.ts(1,10): error TS1005: ';' expected.
script4.ts(5,14): error TS1005: '=' expected.
script4.ts(5,29): error TS1005: ',' expected.
script4.ts(5,38): error TS1005: ';' expected.

&& tsconfig jakby kogoś interesował:

"compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": false,
        "removeComments": true,
        "strictNullChecks": true,
        "noUnusedParameters": true
    },

PS. Tylko wyróbcie się do 21 bo nie mam czasu :D #pdk

3

Masz identycznie nazwane pole oraz metodę (projectName), to na pewno; nie jestem jednak przekonany dlaczego zwraca Ci błędy składniowe.

2
Patryk27 napisał(a):

Masz identycznie nazwane pole oraz metodę (projectName), to na pewno; nie jestem jednak przekonany dlaczego zwraca Ci błędy składniowe.

Mój błąd. Sporo kombinowałem, i nie poprawiłem nazwy. Edytowałem post żeby nie wprowadzać nikogo w błąd. To oczywiście nie powoduje błędu kompilacji. Mam wrażenie, że kompilator mnie nie słucha, bo jak rozumiem:

"removeComments": true,

powinno czyścić plik wynikowy z komentarzy, a tego nie robi ;-)

3

Ta odpowiedź sugeruje mi, że masz złą wersję TS: https://stackoverflow.com/a/33114301


UPDATE: A nawet jeśli masz dobrą zainstalowaną, to możesz mieć złą ustawioną.


UPDATE2:

Na stronie https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#abstract-classes-and-methods jest podane, że:

TypeScript 1.6 adds support for abstract keyword for classes and their methods.

2

@Patryk27: @Silv Blisko.
Burdel w JS (w mojej opinii). Niestety u mnie npm nie chce współpracować, i kompiluję za pomocą npx. Wersja TS w systemie to 3.4.5 ale nie wiedzieć czemu dla npx 1.5.6. Stąd błąd przy kompilacji.
Dzięki za pomoce/sugestie. Jakoś udało się to w końcu poprawić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1