TypeScript: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 19: | Zeile 19: | ||
npm install --save-dev jest ts-jest @types/jest | npm install --save-dev jest ts-jest @types/jest | ||
+ | npx ts-jest config:init | ||
+ | |||
Siehe | Siehe | ||
+ | * https://jestjs.io/docs/getting-started#using-typescript | ||
* [[React]] zur Frontend-Entwicklung mit Jest | * [[React]] zur Frontend-Entwicklung mit Jest | ||
* [https://github.com/basarat/typescript-book/blob/master/docs/testing/jest.md Jest für TypeScript], basiert auf ts-jest | * [https://github.com/basarat/typescript-book/blob/master/docs/testing/jest.md Jest für TypeScript], basiert auf ts-jest |
Version vom 26. November 2022, 07:30 Uhr
TypeScript ist eine JavaScript-Weiterentwicklung, die Typsicherheit bietet. TypeScript wird in JavaScript übersetzt.
TypeScript und Node.js
Allgemein
Siehe
- https://basarat.gitbooks.io/typescript/docs/quick/nodejs.html
- Beispielprojekt mit TypeScript, Node.js und PostgresSQL mit pg-promise
- TypeScript Compiler Optionen
- Debugging TypeScript auf Node.js
Bauen eines npm-Moduls mit TypeScript
Siehe
- https://medium.com/cameron-nokes/the-30-second-guide-to-publishing-a-typescript-package-to-npm-89d93ff7bccd
- https://itnext.io/step-by-step-building-and-publishing-an-npm-typescript-package-44fe7164964c
TypeScript und Jest
npm install --save-dev jest ts-jest @types/jest npx ts-jest config:init
Siehe
- https://jestjs.io/docs/getting-started#using-typescript
- React zur Frontend-Entwicklung mit Jest
- Jest für TypeScript, basiert auf ts-jest
- Vorschlag für Projektstruktur mit Jest
- Einfaches Boilerplate für TypeScript-Backend mit Jest-Tests
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
- https://itnext.io/how-to-create-your-own-typescript-cli-with-node-js-1faf7095ef89
- https://medium.com/geekculture/building-a-node-js-cli-with-typescript-packaged-and-distributed-via-homebrew-15ba2fadcb81.
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:
- https://www.npmjs.com/package/ts-postgres
- Postgres-Typescript - ein Generator, der SQL-Code in TypeScript-Code transformiert.
- Schemats erlaubt typensicheren Zugriffe auf SQL-Datenbanken
- pg-query-parser ermöglicht das Parsen einer SQL-Anweisung und anschließendes Bearbeiten mittels TypeScript/JavaScript.
- 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
- ts-auto-guard
- typescript-json-validator
- benützt ajv und typescript-json-schema-generator
- Anleitung auf emasuriano.com
- Ajv prüft JSON gegen JSON Schema und JSON Type Definition. JSON Schema kann aus TypeScript-erstellt werden:
- https://github.com/woutervh-/typescript-is
- https://github.com/fabiandev/ts-runtime
- https://github.com/pelotom/runtypes
Siehe auch
- https://learning-notes.mistermicheels.com/javascript/typescript/runtime-type-checking/
- https://www.typescriptneedstypes.com/
- https://tsoa-community.github.io/docs/ Type safe rest APIs
TypeScript REST-API mit Authentifizierung
Siehe
Weiterführendes
Siehe auch
- React
- Jest
- Blogs
- fettblog.eu - Einsatz von literal types