Outils pour utilisateurs

Outils du site


web:javascript:typescript

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
web:javascript:typescript [2018/03/29 01:56] – [Typings] sgariepyweb:javascript:typescript [2022/02/02 00:42] (Version actuelle) – modification externe 127.0.0.1
Ligne 8: Ligne 8:
  
 ===== Linting ===== ===== Linting =====
 +
 +<note>Il n'est plus recommendé d'utiliser TSLint, utiliser ''@typescript/eslint'' plutôt.</note>
 +
  
   * Visual Studio Code a une extension : TSLint   * Visual Studio Code a une extension : TSLint
-  * Linter Documentation : [[https://palantir.github.io/tslint/|TSLint]]+  * Linter Documentation : [[https://palantir.github.io/tslint/|TSLint]] ([[https://palantir.github.io/tslint/rules/|Rules]])
  
 Pour installer: Pour installer:
Ligne 16: Ligne 19:
   $ npm i -g tslint   $ npm i -g tslint
  
 +Fichier ''tslint.json'' de base :
 +
 +<code>
 +{
 +    "extends": [
 +        "tslint:recommended"
 +    ],
 +    "rules": {
 +        
 +    }
 +}
 +</code>
  
  
 +Exemple de fichier ''tslint.json'' : [[https://gitlab.sgy.io/sgy/typescript-base/raw/master/tslint.json|tslint.json]]
 ===== Compilation / Transpile ===== ===== Compilation / Transpile =====
  
Ligne 31: Ligne 47:
  
  
-===== Typings =====+===== Types definitions =====
  
 +Souvent on peut retrouver les définitions de types avec les packages ''@types/*'', où ''*'' est le nom du package original.  Par exemple, pour ''boxen'', on aura ''@types/boxen'' Quand même vérifier avant d'installer n'importe quel package.
  
 +On peut aussi créer un fichier ''types.d.ts'' au niveau racine du projet.  Dans ce fichier, on peut alors ajouter:
  
-  * Package : [[https://www.npmjs.com/package/typings|typings]]+<code javascript> 
 +declare module "boxen"; 
 +</code>
  
  
 +===== Testing =====
  
  
 +On peut utiliser Jasmine.
 +
 +  $ npm install jasmine
 +  $ jasmine init
 +
 +
 +
 +Karma
 +
 +
 +Jest
  
  
Ligne 45: Ligne 77:
  
 <code javascript> <code javascript>
-class ICat {+interface ICat {
     name: string;     name: string;
     age: number;     age: number;
Ligne 52: Ligne 84:
 let fluffy: ICat; let fluffy: ICat;
 </code> </code>
 +
 +On peut permettre d'ajouter n'importe quelle propriété en utilisant ''[prop]'': 
 +
 +
 +<code javascript>
 +interface ICat {
 +    name: string;
 +    age: number;
 +    [prop: string]: any;
 +}
 +
 +let fluffy: ICat = {
 +    name: "Fluffy",
 +    age: 2,
 +    eyeColor: "Brown"
 +};
 +</code>
 +
 +On peut le faire pour des fonctions.
 +
 +<code>
 +interface myFn {
 +    (n: number, m: number): number;
 +}
 +
 +let addition: myFn;
 +addition = function(myNumber1: number, myNumber2: number): number {
 +    return myNumber1 + myNumber2;
 +}
 +</code>
 +
 +TSLint semble plutôt privilégier cette syntaxe:
 +
 +<code>
 +type IAdditionFn = (n: number, m: number) => number;
 +
 +let addition: IAdditionFn;
 +addition = (myNumber1: number, myNumber2: number): number => {
 +    return myNumber1 + myNumber2;
 +};
 +</code>
 +
 +
 +
 +
 +
 +
 +
  
 ====== Classes ====== ====== Classes ======
web/javascript/typescript.1522281369.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)