--- name: javascript-practices description: JS/TS conventions for syntax, modules, and types. Use when writing or reviewing JavaScript/TypeScript code. --- # JavaScript/TypeScript Practices Conventions for JS/TS syntax, modules, types, and runtime behavior. ## Quick Start ```typescript import * as path from "@std/path"; // namespace import import { utils } from "./utils.ts"; // explicit extension export function buildConfig() {} // direct named export const port = config.port ?? 8000; // nullish coalescing ``` ## Key Principles **Modules:** Direct named exports, namespace imports, explicit `.ts` extensions **Syntax:** `const` over `let`, always semicolons, `===` strict equality, `??` over `||` **Types:** `Number()` over `+`, `instanceof` over `typeof`, prefer `null` over `undefined` **Runtime:** `import.meta.dirname`, `globalThis` over `window`, optional `projectRoot` params **Async:** Use `return await` consistently for better stack traces and correct error handling **Avoid:** `eval`, prototype mutation, truthy/falsy checks on non-booleans ## References See [rules.md](references/rules.md) for complete guidelines with examples.