Ergebnis 1 bis 1 von 1
  1. #1
    GELight ist offline Tripel-As
    registriert
    13-02-2005
    Beiträge
    203

    Lightbulb Typescript Typensicherheit

    Hi alle zusammen,

    Ich hoffe, das Forum ist noch aktiv.
    Hätte eine Frage bzw. schaue, ob es evtl. sogar eine Lösung für etwas gibt, was ich gerade manuell in jede meiner Methoden einbaue.

    Worum geht es?
    Ich habe eine LIB x in Typscript geschrieben, in der ich einiges an Klassen habe. Diese Libs habe ich zum Teil auch mit JEST vertestet. Also rein fachlich teste ich alles ab, um sicherzustellen, dass die Methode das tut, was sie soll, WENN die Methoden-Parameter auch vom korrekten Typ sind. Da es in Javascript zur Laufzeit keine Unterstützung bzg. Typensicherheit gibt ( Typescript hilft einem ja auch nur in der IDE zur Entwicklungszeit ), habe ich mir also eine Art TypeGuard-Klasse mit statischen Methoden geschrieben, welche ich in jede meiner Methoden einfügen kann um die Parameter-Typen zu prüfen.

    Das Ganze sieht in der Praxis in meiner *.ts Datei z.B. so aus:
    PHP-Code:
    public static getSubstr(charsnumber[], startIndexnumberlennumber): string {
        
    TypeGuard.assureNumberArray(chars);
        
    TypeGuard.assureNumber(startIndex);
        
    TypeGuard.assureNumber(len);
            
        const 
    sub chars.slice(startIndex, (startIndex len));
        return 
    sub.map((char) => {
            return 
    String.fromCodePoint(char);
        }).
    join("");

    Was die TypeGuard Methoden am Ende nur machen ist der pure Check auf String, Integer, Array, etc ... Sollte z.B. ein erwarteter String-Input-Parameter mal kein String sein, so werfen meine TypeGuard Methoden eine entsprechende TypeException. Somit kann ich auch falsche Input-Parameter meiner Methoden in meinen Unit-Tests entsprechend testen.

    Nun meine Frage:
    Aktuell packe ich manuell in jede meiner Methoden meine entsprechenden Aufrufe für die Typen-Checks rein. Gibts evtl. für Typescript eine Art Erweiterung, womit ich meine oben gezeigten Zeilen evtl. vollautomatisch in meine Methoden schreiben lassen kann beim Build?
    Mit purem Javascript wird es nicht gehen, da ich ja nichts habe, woran ich erkennen kann, was rein darf und was nicht.

    Vielleicht habt ihr eine Idee oder Gedanken dazu.


    Gruß Mario
    Geändert von mikdoe (04-10-2021 um 09:06 Uhr) Grund: Titel ergänzt

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •