TypeScript 2: пользовательские наборы для нетипизированного модуля npm
После попытки предложения размещены вдругие местаЯ не могу запустить запущенный проект с использованием нетипизированного модуля NPM. Ниже приведен минимальный пример и шаги, которые я попробовал.
Для этого минимального примера мы будем делать вид, чтоlodash
не имеет существующих определений типов. Таким образом, мы будем игнорировать пакет@types/lodash
и попробуйте вручную добавить его файл набравlodash.d.ts
к нашему проекту.
Структура папок
node_moduleslodashЦСИfoo.tsтипизацииобычайlodash.d.tsГлобальныйindex.d.tspackage.jsontsconfig.jsontypings.jsonДалее файлы.
файлfoo.ts
///<reference path="../typings/custom/lodash.d.ts" />
import * as lodash from 'lodash';
console.log('Weeee');
файлlodash.d.ts
копируется прямо с оригинала@types/lodash
пакет.
файлindex.d.ts
/// <reference path="custom/lodash.d.ts" />
/// <reference path="globals/lodash/index.d.ts" />
файл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"
}
файл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"
]
}
файлtypings.json
{
"name": "TestName",
"version": false,
"globalDependencies": {
"lodash": "file:typings/custom/lodash.d.ts"
}
}
Как вы можете видеть, я пробовал много разных способов импорта печатных машин:
Напрямую импортируя его вfoo.ts
Поtypings
недвижимость вpackage.json
ИспользуяtypeRoots
вtsconfig.json
с файломtypings/index.d.ts
Используя явныйtypes
вtsconfig.json
Включаяtypes
каталог вtsconfig.json
Делая обычайtypings.json
файл и работаетtypings install
Тем не менее, когда я запускаю Typescript:
E:\temp\ts>tsc
error TS2688: Cannot find type definition file for 'lodash'.
Что я делаю неправильно?