Languages

TypeScript development

A type system over JavaScript that converts a whole class of runtime failure into a build failure, and gives an editor enough information to refactor a large codebase safely.

What we reach for first

When we reach for it

Anything with a browser in it, and most of what sits behind one. On a system that will outlive the people who wrote it, types are the cheapest documentation available, and the only kind that cannot quietly go stale — the build says so first.

When we would argue against it

We will not claim a project is typed when the types stop at the door. Data arriving from a network, a form or a database is validated at that boundary and given a real shape; asserting it with `as` moves the failure somewhere harder to find rather than removing it.

What it looks like in delivery

Shared types across the wire are worth more to us than any single language feature: when the contract between a client and a server is one definition, a breaking change is caught by the compiler in the pull request rather than by a customer. On the mixed-language systems we build, TypeScript is usually the layer nearest the user and Go or C# is what sits behind it.

Working in TypeScript?

Tell us what it is running, what it costs you today, and what you need it to do next. A senior engineer will tell you what we would keep and what we would change.