@tsmetadata/polyfill provides the necessary polyfill for legacy runtimes to properly use decorator metadata in TypeScript 5.2+.
In addition, the library provides the necessary global type declaration for Symbol.metadata.
npm install @tsmetadata/polyfillAs early as possible, import the polyfill.
import '@tsmetadata/polyfill';After doing so, Symbol.metadata will be defined.
You may also need to configure your tsconfig.json to target <= ES2022 and include the esnext.decorators library. The easiest way to do this is to extend our included polyfill-ready configuration.
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": ["@tsmetadata/polyfill/lib/tsconfig.polyfill.json"],
}Special thanks to Oleksandr Tarasiuk for implementing decorator metadata and to Andrew Branch for releasing an early version of this polyfill.