TypeScript
Frasto ships TypeScript definitions and uses strict contracts for public component inputs.
Display contracts, not database models
Section titled “Display contracts, not database models”interface SelectOption { label: string; value: string; disabled?: boolean;}This describes what a select needs to render. It does not imply a table, ORM entity, or API response.
Generic data components
Section titled “Generic data components”Table-like components should preserve row types where practical:
interface TableColumn<Row> { key: keyof Row | string; label: string; sortable?: boolean;}Stability
Section titled “Stability”Types are part of the public API. Renames, narrower unions, changed defaults, and newly required props need the same review as runtime behavior.

