{ "extends": "./generated/tspaths.json", "compilerOptions": { "noEmit": true, "libReplacement": true, // We don't default to `esnext`, as not everything is necessarily available // in Firefox just yet. This also allows for separation of TypeScript upgrades // from target updates. "target": "es2025", // Add extra librarys for items we support. See the full list of TypeScript // support libraries at https://github.com/microsoft/TypeScript/tree/main/src/lib "lib": [ "dom", "ESNext.Array", "ESNext.Date", "ESNext.Collection", // Not yet - https://bugzilla.mozilla.org/show_bug.cgi?id=1905229 // "ESNext.Decorators", "ESNext.Disposable", "ESNext.Error", "ESNext.Intl", "ESNext.Sharedmemory", "ESNext.Temporal", "ESNext.TypedArrays" ], // Using `unknown` for catch variables causes us to need to check if // everything is an `Error` (or appropriate object) before using properties // from them. We have lint rules that ensure that we throw objects, which are // generally assumed to be `Error` or `Components.Exception` derived. // // Ideally TypeScript would provide us a way to say that we expect these // all to be `Error`-based, so that we didn't have to do the additional checks. // However, they don't currently. These are a couple of relevant issues: // - https://github.com/microsoft/TypeScript/issues/42596 // - https://github.com/microsoft/TypeScript/issues/20024 // // For now, we've decided to turn this off, so that we don't have to add // extra validation for things where we already know what the object type is. "useUnknownInCatchVariables": false } }