TaskWrite a JSDoc'd function clamp(value, lo, hi) that clamps value into [lo, hi]. Include @param and @returns tags. Call it with clamp(5, 0, 10), clamp(-3, 0, 10), clamp(99, 0, 10) and log the results.
JSDoc @param and @returns: IDE hints without TS
150 XP10 min
Theory
What JSDoc gives you
A JSDoc block comment above a function makes editors treat it almost like TypeScript:
- hover the function name β see params and return type
- call it with wrong types β red squiggle in VS Code
- arg auto-complete shows expected shapes
No tsconfig. No build step. Just comments your editor already understands.
/**
* Format a price with currency.
* @param {number} cents - price in minor units
* @param {string} [currency="USD"] - ISO currency code
* @returns {string} formatted price like "$12.34"
*/
function formatPrice(cents, currency = "USD") {
return new Intl.NumberFormat("en", {
style: "currency",
currency,
}).format(cents / 100);
}Key tags
@param {type} name - descriptionβ one per parameter@param {type} [name=default] - descriptionβ optional param@returns {type} descriptionβ return value@throws {Error} descriptionβ what errors can fire
When this is enough
90% of small/medium JS projects need exactly this. The other 10% (large teams, complex generics) reach for TypeScript. Lesson C5-09 has the honest "when to use TS" call.
π
Sign up to start coding
Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β card required, cancel anytime.
Sign up β free trial βFirst 10 lessons in each track are free. No card needed for those.