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.jsonNä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.ts
Durch einetypings
Eigenschaft inpackage.json
Durch die NutzungtypeRoots
imtsconfig.json
mit einer Dateitypings/index.d.ts
Mit einem explizitentypes
imtsconfig.json
it demtypes
Verzeichnis intsconfig.json
Beim 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