Not just stricter TypeScript. More like a dialect.
ShotScript's rules are comprehensive enough that valid code
looks nothing like typical TypeScript. No classes, no arrow
callbacks, no ternaries, no throw, no raw Promises
— not because these things are bad, but because having
one way of doing things is the whole point. Think of it
less as "stricter TypeScript" and more as a distinct style within
it: TypeScript provides the type system and toolchain, ShotScript
defines a narrower syntax on top.
/shotscript-migrate
command handles the heavy lifting) but it's a significant
operation, not a quick toggle.
no-class and
no-arrow-functions require architectural
rewrites, not search-and-replace.
/shotscript-migrate
handles the rewrite end-to-end — but treat it like a
major refactor: good test coverage before you start,
and expect surprises in complex call graphs.
no-throw only makes sense
once you have PromiseResult, and
require-async-tuple-return only makes
sense once raw Promises are gone. It's all or nothing.
It started as EspressoScript.
The name has a short history — and a happy accident at the end of it.