TypeScript 2: Benutzerdefinierte Typisierungen für nicht typisiertes npm-Modul

Nach Versuchen von Vorschlägen, die in @ gepostet wurdandere Plätz, Ich bin nicht in der Lage, ein Typoskript-Projekt zum Laufen zu bringen, das ein untypisiertes NPM-Modul verwendet. Unten ist ein minimales Beispiel und die Schritte, die ich ausprobiert habe.

Für dieses minimale Beispiel geben wir vor, dasslodash hat keine vorhandenen Typdefinitionen. Als solches werden wir das Paket @ ignorier@types/lodash und versuchen Sie, die Typisierungsdatei @ manuell hinzuzufügelodash.d.ts zu unserem Projekt.

Ordnerstruktur

node_modules lodash src foo.ts tippingsBenutzerdefinier lodash.d.ts global index.d.ts package.json tsconfig.json typings.json

Nächste, die Dateien.

Dateifoo.ts

///<reference path="../typings/custom/lodash.d.ts" />
import * as lodash from 'lodash';

console.log('Weeee');

Dateilodash.d.ts wird direkt vom Original kopiert@types/lodash package.

Dateiindex.d.ts

/// <reference path="custom/lodash.d.ts" />
/// <reference path="globals/lodash/index.d.ts" />

Dateipackage.json

{
  "name": "ts",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "typings": "./typings/index.d.ts",
  "dependencies": {
    "lodash": "^4.16.4"
  },
  "author": "",
  "license": "ISC"
}

Dateitsconfig.json

{
  "compilerOptions": {
    "target": "ES6",
    "jsx": "react",
    "module": "commonjs",
    "sourceMap": true,
    "noImplicitAny": true,
    "experimentalDecorators": true,
    "typeRoots" : ["./typings"],
    "types": ["lodash"]
  },
  "include": [
    "typings/**/*",
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts"
  ]
}

Dateitypings.json

{
    "name": "TestName",
    "version": false,
    "globalDependencies": {
        "lodash": "file:typings/custom/lodash.d.ts"
    }
}

Wie Sie sehen können, habe ich viele verschiedene Arten des Importierens von Texten ausprobiert:

Durch direkten Import infoo.tsDurch einetypings Eigenschaft inpackage.jsonDurch die NutzungtypeRoots imtsconfig.json mit einer Dateitypings/index.d.tsMit einem explizitentypes imtsconfig.jsonit demtypes Verzeichnis intsconfig.jsonBeim Erstellen einer benutzerdefiniertentypings.json Datei und läufttypings install

Ja, wenn ich Typescript starte:

E:\temp\ts>tsc
error TS2688: Cannot find type definition file for 'lodash'.

Was mache ich falsch

Antworten auf die Frage(4)

Ihre Antwort auf die Frage