1.7 KiB
1.7 KiB
| applyTo |
|---|
| assets/js/**/*.js, assets/js/**/*.ts |
JavaScript and TypeScript Guidelines
TypeScript Configuration
Project uses TypeScript with ES2020 target:
- Config:
tsconfig.json - Source:
assets/js/**/*.ts - Output:
dist/ - Build:
yarn build:ts - Watch:
yarn build:ts:watch
Component Pattern
-
Add
data-componentattribute to HTML element:<div data-component="my-component"></div> -
Create component module in
assets/js/components/:// assets/js/components/my-component.ts export function initMyComponent(element: HTMLElement): void { // Component logic } -
Register in
assets/js/main.js:import { initMyComponent } from './components/my-component'; registerComponent('my-component', initMyComponent);
Debugging
Method 1: Chrome DevTools with Source Maps
- VS Code: Run > Start Debugging
- Select "Debug Docs (source maps)"
- Set breakpoints in
assets/js/ns-hugo-imp:namespace
Method 2: Debug Helpers
import { debugLog, debugBreak, debugInspect } from './utils/debug-helpers';
const data = debugInspect(someData, 'Data');
debugLog('Processing data', 'myFunction');
debugBreak(); // Breakpoint
Start with: yarn hugo server
Debug with: VS Code "Debug JS (debug-helpers)" configuration
Remove debug statements before committing.
Type Safety
- Use strict TypeScript mode
- Add type annotations for parameters and returns
- Use interfaces for complex objects
- Enable
checkJs: falsefor gradual migration
For complete JavaScript documentation, see DOCS-CONTRIBUTING.md.