mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-26 06:34:20 +08:00
A TypeScript subclass of Error that declared `cause` was refused with SC1090, although the same field in a JavaScript class already compiled. The declaration now lowers like the JavaScript field: it defines the error's own enumerable `cause` after super() returns, undefined without an initializer, replacing a cause passed through the options exactly as Node does. `declare` and `abstract` declarations are erased and define nothing. Reads of `.cause` on Error-rooted classes are always the checked-dynamic property, so only declarations typed `unknown` or `object` are accepted. Other declared types, parameter properties and accessors named `cause` keep named refusals. This unblocks the source of @openfeature/core, whose abstract error base declares `cause?: unknown`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>