Tapuscrit 2: personnalisé typings pour typée module npm

Après avoir essayé les suggestions posté dans d'autres endroits, je me trouve dans l'impossibilité d'obtenir un tapuscrit projet en cours d'exécution qui utilise un non MNP module. Ci-dessous est un exemple minimal et les étapes que j'ai essayé.

Pour cet exemple minimal, nous allons faire semblant que lodash n'avons pas de définitions de type. En tant que tel, nous allons ignorer le paquet @types/lodash et essayer de les ajouter manuellement son typings fichier lodash.d.ts à notre projet.

Structure de dossier

  • node_modules
    • lodash
  • src
    • foo.ts
  • typings
    • personnalisé
      • lodash.d.ts
    • mondiale
    • index.d.ts
  • paquet.json
  • tsconfig.json
  • typings.json

Ensuite, les fichiers.

Fichier foo.ts

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

console.log('Weeee');

Fichier lodash.d.ts est copié directement à partir de l'original @types/lodash paquet.

Fichier index.d.ts

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

Fichier package.json

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

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

Fichier typings.json

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

Comme vous pouvez le voir, j'ai essayé beaucoup de différentes manières d'importer des typings:

  1. En important directement dans foo.ts
  2. Par un typings propriété dans package.json
  3. En utilisant typeRoots dans tsconfig.json avec un fichier typings/index.d.ts
  4. À l'aide d'un explicite types dans tsconfig.json
  5. En incluant les types répertoire dans tsconfig.json
  6. En faire un personnalisé typings.json fichier et en l'exécutant typings install

Pourtant, quand je lance la Machine:

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

Ce que je fais mal?

  • Avez-vous essayé de l'inclure dans foo.ts à l'aide de chemin d'accès correct comme ///<reference path="../typings/custom/lodash.d.ts" /> ?
  • C'était une faute de frappe, je vous remercie. Il n'a pas changé le résultat.
InformationsquelleAutor Jodiug | 2016-10-24