TypeScript 2: tipificaciones personalizadas para módulo npm sin tipo

Después de probar sugerencias publicadas enotros lugares, No puedo ejecutar un proyecto mecanografiado que utiliza un módulo NPM sin tipo. A continuación se muestra un ejemplo mínimo y los pasos que probé.

Para este ejemplo mínimo, pretendemos quelodash no tiene definiciones de tipo existentes. Como tal, ignoraremos el paquete@types/lodash e intente agregar manualmente su archivo de tipificaciónlodash.d.ts a nuestro proyecto

Estructura de carpetas

nodo_móduloslodashsrcfoo.tstipingspersonalizadolodash.d.tsglobalindex.d.tspackage.jsontsconfig.jsontypings.json

A continuación, los archivos.

Expedientefoo.ts

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

console.log('Weeee');

Expedientelodash.d.ts se copia directamente del original@types/lodash paquete.

Expedienteindex.d.ts

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

Expedientepackage.json

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

Expedientetsconfig.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"
  ]
}

Expedientetypings.json

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

Como puede ver, he probado muchas formas diferentes de importar tipings:

Importándolo directamente enfoo.tsPor untypings propiedad enpackage.jsonMediante el usotypeRoots entsconfig.json con un archivotypings/index.d.tsMediante el uso de un explícitotypes entsconfig.jsonAl incluir eltypes directorio entsconfig.jsonHaciendo una costumbretypings.json archivo y corriendotypings install

Sin embargo, cuando ejecuto Typecript:

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

¿Qué estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta