brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
build-free-typesThis skill should be used when the user asks to "set up types without a build step", "use vanilla JS with types", "configure erasable syntax", or mentions "JSDoc type checking". It provides instructions for modern type safety using JSDoc in browsers and native TypeScript execution in Node.js.
Independent GitHub snapshot · Automated classification · Original documentation governs
Configure projects for type safety without a compilation step (tsc/build) by leveraging JSDoc for browser code and Erasable Syntax for Node.js.
.js files with JSDoc annotations. This ensures the code runs directly in the browser while maintaining full IDE type support and error checking..ts files with Erasable Syntax. This allows Node.js (v24.11.0+) to execute TypeScript files directly without a build step, provided they don't use non-erasable features like enums or namespaces.Apply these settings to enable seamless type checking.
package.jsonEnsure the project is an ES Module and specifies a modern Node.js version.
{
"type": "module",
"engines": {
"node": ">=24.11.0"
},
"scripts": {
"typecheck": "tsc --noEmit"
}
}
tsconfig.jsonConfigure the TypeScript compiler to check JavaScript files and enforce erasable syntax.
{
"compilerOptions": {
"target": "esnext",
"module": "nodenext",
/* Node.js - Native TS Execution Flags */
"erasableSyntaxOnly": true, /* Prevents using unsupported TypeScript features. */
"verbatimModuleSyntax": true, /* Enforces explicit type imports: https://nodejs.org/api/typescript.html#importing-types-without-type-keyword */
"allowImportingTsExtensions": true, /* Allows 'import x from "./file.ts"' */
"rewriteRelativeImportExtensions": true, /* Handle the import adjustment if compiling to JS */
/* Type Checking Strategy */
"noEmit": true,
"allowJs": true,
"checkJs": true,
"strict": true,
"skipLibCheck": true
}
}
Follow these rules to maintain a build-free environment.
.js files)interface, type aliases, or other TypeScript-only syntax in .js files./** @typedef {import('./types.js').User} User */). Use the modern TS 5.5+ style: /** @import {User} from './types.js' */..ts files)enumnamespacesexperimentalDecorators.ts extension in import paths: import { x } from './utils.ts'.import type: Explicitly mark type-only imports to satisfy verbatimModuleSyntax.examples/tsconfig.json - A complete type-checking configuration.