Przejdź do treści
webtype.orgwebtype.orgtsconfig

    ↑↓ ruch · ⏎ otwórz · esc zamknij

    tsconfig

    erasableSyntaxOnly

    Tylko to, co da się wymazać

    Zakazuje konstrukcji TypeScriptu emitujących kod wykonawczy — enumów, przestrzeni nazw, właściwości parametrów, pól klasy z `declare`.

    Od
    TypeScript 5.8
    strict
    Poza strict
    W twoim tsconfigu
    "erasableSyntaxOnly": true

    Ten sam fragment za każdym razem. Zmieniła się tylko opcja.

    Z wyłączoną

    "erasableSyntaxOnly": false
    export enum Level {
      Low,
      High,
    }

    Kompiluje się czysto

    Z włączoną

    "erasableSyntaxOnly": true
    export enum Level {
      Low,
      High,
    }

    Zgłasza TS1294

    Dlaczego kompilator się tym przejmuje

    Większość TypeScriptu to adnotacje: usuń je, a zostaje JavaScript. Garść funkcji nią nie jest i to przez nie nie da się po prostu obedrzeć pliku z typów. Node, Deno i przeglądarki uruchamiające TypeScript wprost idą drogą obdzierania — więc ta flaga mówi ci w czasie kompilacji, czy twoje źródło przez nią przejdzie, zamiast dowiadywać się w chwili, gdy ktoś spróbuje.

    Wniosek

    Unia literałów tekstowych robi to, co robił enum — i znika bez śladu.

    Gdzie iść dalej

    Opcji: 22