Bases & Syntaxe
Importer des modules
import { readTextFile } from "https://deno.land/std@0.106.0/fs/mod.ts";
Utilisé pour importer des fonctions ou des classes d'autres fichiers.
Définir une fonction
function greet(name: string): string {
return `Hello, ${name}!`;
}
Pour définir des fonctions avec paramètres et retour de type.
Structures de Données
Tableaux
const numbers = [1, 2, 3];
numbers.push(4);
console.log(numbers); // [1, 2, 3, 4]
Pour stocker une collection ordonnée d'éléments.
Objets
const person = { name: "John", age: 30 };
person.age += 1;
console.log(person); // { name: "John", age: 31 }
Pour stocker des paires clé-valeur.
Fonctions & Méthodes Essentielles
Async/Await
async function fetchData() {
const response = await fetch("https://api.example.com/data");
return await response.json();
}
Pour gérer les opérations asynchrones de manière plus intuitive.
Patterns Courants
Singleton
class Database {
private static instance: Database | null = null;
private constructor() {}
public static getInstance(): Database {
if (!this.instance) {
this.instance = new Database();
}
return this.instance;
}
public query(sql: string): void {
console.log(`Query executed: ${sql}`);
}
}
Pour s'assurer qu'une classe n'a qu'une seule instance.
Opérations Avancées
Middleware
function logger(next: () => void) {
console.log("Request received");
next();
console.log("Response sent");
}
async function fetchData() {
logger(() => {
fetch("https://api.example.com/data")
.then(response => response.json())
.then(data => console.log(data));
});
}
Pour ajouter des fonctionnalités avant et après l'exécution d'une fonction principale.
Débogage & Outils
Utiliser console.log
const result = add(2, 3);
console.log(`Result: ${result}`);
Pour afficher les valeurs de variables pour déboguer le code.
Lancer avec --inspect-brk
deno run --inspect-brk script.ts
Utilisé pour démarrer un débogueur Chrome qui permet d'interrompre l'exécution du code à des points spécifiques.