web:javascript:typescript
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
web:javascript:typescript [2017/09/12 22:23] – [Classes] sgariepy | web:javascript:typescript [2019/07/16 16:11] – [Linting] sgariepy | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== TypeScript ====== | ====== TypeScript ====== | ||
- | ====== Installation | + | ===== Installation ===== |
- Installer node.js | - Installer node.js | ||
Ligne 7: | Ligne 7: | ||
- | ====== Compilation / Transpile ====== | + | ===== Linting |
- | En installant TypeScript, on installe un //transpiler// | + | < |
- | tsc fichier.ts | ||
+ | * Visual Studio Code a une extension : TSLint | ||
+ | * Linter Documentation : [[https:// | ||
+ | Pour installer: | ||
+ | $ npm i -g tslint | ||
- | ====== TSD ====== | + | Fichier '' |
- | + | ||
- | **Remplacé par [[https:// | + | |
- | + | ||
< | < | ||
- | // Place your settings in this file to overwrite default and user settings. | ||
{ | { | ||
- | "files.exclude": | + | |
- | " | + | "tslint:recommended" |
- | "**/ | + | ], |
- | " | + | "rules": |
- | "**/*.js.map": | + | |
- | | + | } |
- | } | + | |
} | } | ||
+ | </ | ||
+ | |||
+ | Exemple de fichier '' | ||
+ | ===== Compilation / Transpile ===== | ||
+ | |||
+ | En installant TypeScript, on installe un // | ||
+ | |||
+ | $ tsc fichier.ts | ||
+ | | ||
+ | Avec le sourcemap: | ||
+ | |||
+ | $ tsc --sourceMap true fichier.ts | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Types definitions ===== | ||
+ | |||
+ | Souvent on peut retrouver les définitions de types avec les packages '' | ||
+ | |||
+ | On peut aussi créer un fichier '' | ||
+ | |||
+ | <code javascript> | ||
+ | declare module " | ||
</ | </ | ||
+ | |||
+ | ===== Testing ===== | ||
+ | |||
+ | |||
+ | On peut utiliser Jasmine. | ||
+ | |||
+ | $ npm install jasmine | ||
+ | $ jasmine init | ||
+ | |||
+ | |||
+ | |||
+ | Karma | ||
+ | |||
+ | |||
+ | Jest | ||
Ligne 41: | Ligne 77: | ||
<code javascript> | <code javascript> | ||
- | class ICat { | + | interface |
name: string; | name: string; | ||
age: number; | age: number; | ||
Ligne 48: | Ligne 84: | ||
let fluffy: ICat; | let fluffy: ICat; | ||
</ | </ | ||
+ | |||
+ | On peut permettre d' | ||
+ | |||
+ | |||
+ | <code javascript> | ||
+ | interface ICat { | ||
+ | name: string; | ||
+ | age: number; | ||
+ | [prop: string]: any; | ||
+ | } | ||
+ | |||
+ | let fluffy: ICat = { | ||
+ | name: " | ||
+ | age: 2, | ||
+ | eyeColor: " | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | On peut le faire pour des fonctions. | ||
+ | |||
+ | < | ||
+ | interface myFn { | ||
+ | (n: number, m: number): number; | ||
+ | } | ||
+ | |||
+ | let addition: myFn; | ||
+ | addition = function(myNumber1: | ||
+ | return myNumber1 + myNumber2; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | TSLint semble plutôt privilégier cette syntaxe: | ||
+ | |||
+ | < | ||
+ | type IAdditionFn = (n: number, m: number) => number; | ||
+ | |||
+ | let addition: IAdditionFn; | ||
+ | addition = (myNumber1: number, myNumber2: number): number => { | ||
+ | return myNumber1 + myNumber2; | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
====== Classes ====== | ====== Classes ====== |
web/javascript/typescript.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1