JS/TS conventions for syntax, modules, and types. Use when writing or reviewing JavaScript/TypeScript code.
Conventions for JS/TS syntax, modules, types, and runtime behavior.
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
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 over
nullundefinedRuntime: import.meta.dirname, globalThis over window, optional
projectRoot params
Async: Use return await consistently for better stack traces and correct
error handling
Deno: Scripts in package.json (not deno.json tasks), use package aliases
directly, no wrapper scripts for built-in commands
Avoid: eval, prototype mutation, truthy/falsy checks on non-booleans
See rules.md for complete guidelines with examples.