Files
lcbp3/.agents/rules/03-typescript.md
T
admin 50bffdf38a
CI / CD Pipeline / build (push) Failing after 42s
CI / CD Pipeline / deploy (push) Has been skipped
690517:1449 204 and 302 refactor #03
2026-05-17 14:49:45 +07:00

1.6 KiB

TypeScript Rules (v1.9.3)

Core Standards

  • Strict Mode — all strict checks enforced.
  • ZERO any types — use proper types or unknown + narrowing.
  • ZERO console.log — use NestJS Logger (backend) or remove before commit (frontend).
  • English for Code — use English for all code identifiers, variables, and logic.
  • Thai for Comments — use Thai for comments, documentation, and JSDoc.
  • Explicit Typing — explicitly define types for all variables, parameters, and return values.
  • JSDoc — use JSDoc for all public classes and methods (in Thai).

File & Function Structure

  • File Headers — every file MUST start with // File: path/filename on the first line.
    • Use absolute path from project root (e.g., // File: backend/src/modules/correspondence/correspondence.service.ts)
    • Do NOT use relative path (e.g., // File: src/example.service.ts)
  • Change Log — include // Change Log at the top of the file.
  • Single Export — export only one main symbol per file.
  • Function Style — avoid unnecessary blank lines inside functions.

i18n Guidelines

  • No Hardcoded Text: Use i18n keys for all user-facing text
  • Reference: specs/05-Engineering-Guidelines/05-08-i18n-guidelines.md
  • Pattern: Use t('key.path') from i18n hook instead of hardcoded strings

Patterns

// ✅ CORRECT
// File: src/example.service.ts
// Change Log:
// - 2026-05-13: Initial creation

/**
 * บริการตัวอย่างสำหรับ LCBP3
 */
export class ExampleService {
  public doSomething(data: string): boolean {
    return data.length > 0;
  }
}