• Robert Knight's avatar
    Prevent Node globals from being included in typechecking environment · 63545fd3
    Robert Knight authored
    By default TypeScript includes all `@types/<name>` packages. This includes
    @types/node, though we don't use it directly, because it is a transitive
    dependency (see `yarn why @types/node`).
    
    As a result Node's globals are added to the environment TS sees, even though
    they don't really exist when our code runs in a browser. These globals
    include overloads for `setTimeout` and `setInterval` which return a different
    type (`Timeout`), causing spurious errors when assigning the result to a number.
    
    Fix the problem by using the `types` option [1] in tsconfig.json to explicitly
    specify which `@types/<name>` packages  to include when checking code in src/
    This does mean that if we ever intentionally add @types packages which declare
    globals (eg. for mocha), we'll need to explicitly list them here.
    
    In the process the ES target was updated to fix an error about a `BigInt` reference.
    
    [1] https://www.typescriptlang.org/tsconfig#types
    63545fd3
process.d.ts 188 Bytes