functional-ts-ja

Model server-side TypeScript domains with discriminated unions and Result types.

51|2|Updated Apr 7, 2026
One-click install
npx skills add https://github.com/iwasa-kosui/functional-ts-principles --skill functional-ts-ja
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: functional-ts-ja
Source: https://github.com/iwasa-kosui/functional-ts-principles/tree/main/skills/functional-ts-ja
Command: npx skills add https://github.com/iwasa-kosui/functional-ts-principles --skill functional-ts-ja

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a principled blueprint for modeling server-side TypeScript domains using functional patterns, avoiding class-based OOP and ensuring safer, maintainable code through discriminated unions, pure state transitions, Result-based error handling, and runtime boundary validation.

Core Features & Use Cases

  • Domain modeling with Discriminated Unions as the primary state representation.
  • Pure functions for state transitions and companion objects to group domain logic.
  • Railway-oriented error handling with Result types and discriminated error unions.
  • Runtime boundary validation using Zod/Valibot/ArkType and avoidance of type assertions.
  • Sensitive<T> for PII protection and safe logging.
  • Real-world use cases include modeling taxi requests, domain events, and repository interactions.

Quick Start

Define a minimal taxi-request domain using discriminated unions and a companion object to demonstrate a valid transition from Waiting to EnRoute.

Frequently Asked Questions about functional-ts-ja

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I model domain state transitions in TypeScript without classes?

Domain state transitions are modeled using discriminated unions for state representation and pure functions grouped in companion objects to ensure safe, maintainable state changes without classes.

What is the best way to handle errors in TypeScript domain logic without throwing exceptions?

Railway-oriented programming using Result types and discriminated error unions handles errors functionally, explicitly managing success and failure paths without throwing exceptions.

How do I validate data at runtime boundaries in a TypeScript server application?

Runtime boundary validation is handled using schema validation libraries like Zod, Valibot, or ArkType to ensure data integrity before entering domain processing.

Can I protect PII data and ensure safe logging in a functional TypeScript backend?

Yes, you protect PII data and ensure safe logging by implementing a Sensitive<T> type wrapper that prevents accidental exposure of sensitive information in logs.

Does functional domain modeling work for complex server-side TypeScript applications?

Functional domain modeling works for server-side TypeScript by structuring use cases, repositories, and domain events to enforce safety and maintainability across complex project architectures.