TypeScript: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
Zeile 43: Zeile 43:
 
* https://dev.to/raphaelmansuy/boost-your-productivity-by-creating-your-own-cli-command-with-typescript-part-1-5g37
 
* https://dev.to/raphaelmansuy/boost-your-productivity-by-creating-your-own-cli-command-with-typescript-part-1-5g37
 
* https://medium.com/geekculture/building-a-node-js-cli-with-typescript-packaged-and-distributed-via-homebrew-15ba2fadcb81.
 
* https://medium.com/geekculture/building-a-node-js-cli-with-typescript-packaged-and-distributed-via-homebrew-15ba2fadcb81.
 +
 +
 +
==== Beispiel für Library in Typescript ====
 +
Siehe
 +
* https://itnext.io/how-to-create-your-own-typescript-cli-with-node-js-1faf7095ef89
 +
* [[TypeScript#TypeScript_und_Jest]]
 +
 +
Im Terminal:
 +
  npm init
 +
  npm install --save-dev ts-jest typescript jest @types/jest ts-node
 +
  npx tsc --init
 +
 +
Anpassen von package.json
 +
  "scripts": {
 +
    "test": "jest",
 +
    "test:watch": "jest --watch",
 +
    "build": "tsc"
 +
  },
 +
 
 +
Anpassen von tsconfig.json
 +
  "rootDir": "./src",                               
 +
  "types": ["jest"],
 +
  "outDir": "./dist",
 +
   
 +
 +
Im Terminal
 +
  npx ts-jest config:init
  
 
=== TypeScript literals ohne einen bestimmten String ===
 
=== TypeScript literals ohne einen bestimmten String ===

Version vom 13. April 2023, 20:29 Uhr

TypeScript ist eine JavaScript-Weiterentwicklung, die Typsicherheit bietet. TypeScript wird in JavaScript übersetzt.

TypeScript und Node.js

Allgemein

Siehe

Bauen eines npm-Moduls mit TypeScript

Siehe

TypeScript und Jest

 npm install --save-dev jest ts-jest @types/jest
 npx ts-jest config:init

Außerdem muss man in der tsconfig.json in compilerOptions => types noch "jest" aufnehmen. Das kann dann so aussehen:

 "types": ["node","jest"],

Siehe

TypeScript und einzelne Anwendungsfelder

TypeScript und Node.js

Das Aufsetzen eines Nodejs-Projekts mit TypeScript wird bei Khalil Stemmer geschildert.

Wie man eine Library mit TypeScript baut wird von Mean geschildert.

Ein Kommandozeilen-Script in TypeScript auf Basis von Node.js zeigt


Beispiel für Library in Typescript

Siehe

Im Terminal:

 npm init
 npm install --save-dev ts-jest typescript jest @types/jest ts-node
 npx tsc --init

Anpassen von package.json

 "scripts": {
   "test": "jest",
   "test:watch": "jest --watch",
   "build": "tsc"
 },
  

Anpassen von tsconfig.json

 "rootDir": "./src",                                 
 "types": ["jest"],
 "outDir": "./dist",
   

Im Terminal

 npx ts-jest config:init

TypeScript literals ohne einen bestimmten String

Siehe

typensicherer Event-Handling

Siehe

TypeScript und PostgreSQL

TypeScript kann jedes JavaScript/Node.js-Framework für den Zugriff auf PostgreSQL nutzen. Darüber hinaus gibt es weitere Bibliotheken:

  • Slonik nutzt neuere Features von ES6 und kann daher auch gut mit TypeScript genutzt werden.
    • Darauf aufbauend ermöglicht @slonik/typegen automatisch TypeScript-Interfaces zu erzeugen, mit deren Hilfe das Ergebnis von SELECT-Querys typsicher verwendet werden kann.

TypeScript - Laufzeit-Typ-Überprüfung

Type Script kann zur Kompilierzeit Typensicherheit sicherstellen. Verschiedene Tools können auf Basis von TypeScript-Typen Prüfmethoden erstellen, um zur Laufzeit z.B. ein in JSON eingelesenen Typ auf Übereinstimmung mit dem TypeScript-Typ abzugleichen:

Eine Möglichkeit ist typescript-json-validator:

 npm install --save-dev typescript-json-validator


In src/types/types.ts werden die zu validierenden Typen exportiert.

In der package.json wird unter "scripts" folgender Eintrag hinzugefügt:

     "build:validators": "typescript-json-validator --defaultProps=false --useNamedExport --collection src/types/types.ts && sed -i  -e \"s/export {/export type {/\" -e s/\\\"format\\\":\\\"fast\\\",// -e s/\\\"nullable\\\":true,// -e s/\\\"uniqueItems\\\":true,// -e s/\\\"unicode\\\":true,// src/types/types.validator.ts",

Der sed-Befehl sollte folgende Fehler vermeiden:

  • "Das Argument vom Typ \"{ allErrors: true; coerceTypes: false; format: string; nullable: boolean; unicode: true; uniqueItems: boolean; useDefaults: false; }\" kann dem Parameter vom Typ \"Options\" nicht zugewiesen werden.\n Das Objektliteral kann nur bekannte Eigenschaften angeben, und \"\"format\"\" ist im Typ \"Options\" nicht vorhanden.",
  • Das erneute Exportieren eines Typs erfordert bei Festlegung des Flags \"--isolatedModules\" die Verwendung von \"export type\".",


Siehe auch

Siehe auch

TypeScript REST-API mit Authentifizierung

Siehe

TypeScript API erstellen

Siehe

Weiterführendes

Siehe auch