Aller au contenu principal

📄 Counter

Question Description

Créez un compteur permettant d'augmenter ou de diminuer sa valeur via les méthodes add() et minus().

1. JavaScript Version

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Counter</title>
</head>
<body>
<p>Count: <span id="count">0</span></p>
<button id="addBtn">Add</button>
<button id="minusBtn">Minus</button>

<script src="counter.js"></script>
</body>
</html>

const createCounter = () => {
let count = 0;
const $countEl = document.querySelector('#count');

const add = () => {
count++;
$countEl.textContent = count;
};

const minus = () => {
count--;
$countEl.textContent = count;
};

return { add, minus };
};

const counter = createCounter();

document.querySelector('#addBtn').addEventListener('click', counter.add);
document.querySelector('#minusBtn').addEventListener('click', counter.minus);

2. TypeScript Version

Utilisez la fonction factory createCounter pour créer un objet compteur, en retournant les méthodes add() et minus(). La variable count est définie comme variable privée pour empêcher l'accès direct depuis l'extérieur.

type CounterType = {
add: () => void;
minus: () => void;
};

const createCounter = (): CounterType => {
let count: number = 0;

const add = () => {
count++;
console.log(count);
};

const minus = () => {
count--;
console.log(count);
};

return { add, minus };
};

const counter = createCounter();
counter.add(); // 1
counter.add(); // 2
counter.minus(); // 1