Website-Suche

TypeScript importiert ES-Bibliotheken transitiv


Ich möchte sicherstellen, dass mein Code keine neueren Bibliotheksfunktionen als ES6 verwendet. Folglich sieht meine tsconfig.json so aus:

{
  "compilerOptions": {
    "lib": [
      "es6"
    ],
    "target": "es6",
    "outDir": "./dist",
    "rootDir": "./src",
    "module": "commonjs",
    "declaration": true,
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true
  }
}

Dies funktioniert wie erwartet, und Aufrufe wie Object.fromEntries werden als Fehler markiert.

Leider erkennt TypeScript sofort nach der Installation einer Dev-Abhängigkeit, die von @types/node abhängt, z. B. einem Rollup-Plugin, die folgende Deklaration in node_modules/@types/node:

/// <reference lib="es2018" />

(Datei node_modules/@types/node/ts3.7/base.d.ts).

Plötzlich wird Object.fromEntries nicht mehr markiert, weil - trotz meiner Konfiguration in tsconfig.json - TypeScript jetzt die ES2018-Bibliothek lädt.

Gibt es eine Möglichkeit, das zu vermeiden?