Как использовать файлы с определенным типом ввода в проекте node / express

Я начал с tsd и более поздних типизаций, которые мы должны установить из этих источников и предоставить ссылку в файле сервера, но теперь мы можем получить файлы объявлений с @ types / filename, я не знаю, почему мы перешли с tsd и типов и теперь мы на @types.

Как я могу использовать эти файлы объявлений в моем среднем проекте, я понятия не имею, как я могу импортировать или что сделать, чтобы он работал и получил интеллект и проверку типов.

У меня есть 2 папки в моем проекте, сервер и клиент, у клиента есть angular и все материалы внешнего интерфейса, а в папке сервера (около узла) есть файлы package.json, server.ts, node_modules и tsconfig, вот файл и сервер tsconfig. ts: его ошибка выброса не может найти модуль @ types / express

{
"compilerOptions": {
    "target": "ES5",
    "module": "commonjs",
    "typeRoots" : ["./node_modules/@types"],
    "moduleResolution": "node"
}
}

import * as express from "@types/express";
var app = express();

app.get('/', function (req, res) {
 res.send('Hello World!')
})

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})

Это package.json:

{
"name": "server",
"version": "1.0.0",
"description": "quiz application backend",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/express": "^4.0.34",
"express": "^4.14.0"
}
}

person blackHawk    schedule 30.11.2016    source источник
comment
какая версия машинописного текста? укажите код: tsconfig, server.ts?   -  person lenny    schedule 30.11.2016
comment
Я не включил в server.ts, потому что я не получаю никакого intellisense, включая tsconfig за несколько секунд   -  person blackHawk    schedule 30.11.2016
comment
включен tsconfig   -  person blackHawk    schedule 30.11.2016
comment
Я могу только догадываться, но попробуй: "moduleResolution": "node"   -  person lenny    schedule 30.11.2016
comment
также, если я забываю об Intelisense и копирую основной сервер экспресс-вставки и начинаю через node server.js, возникает ошибка, не удается найти модуль @ types / express,   -  person blackHawk    schedule 30.11.2016
comment
Вы рассказывали про загрузчик модулей, он нужен?   -  person blackHawk    schedule 30.11.2016
comment
@lenny, кстати, что такое typeroot в tsconfig   -  person blackHawk    schedule 01.12.2016
comment
см. это для объяснения. почему вы импортируете @ types / express? измените его на выражение.   -  person lenny    schedule 01.12.2016
comment
он дает красную линию под экспрессом, если я не делаю @ types / express   -  person blackHawk    schedule 01.12.2016
comment
Я не могу вам помочь, если вы не предоставите более подробную информацию о том, что вы сделали и как выглядит ваша установка (package.json и т. Д.)   -  person lenny    schedule 01.12.2016
comment
включен package.json, на самом деле приложение работает, но я не получаю intellisense также, когда я компилирую красную строку в экспрессе в строке импорта, исчезает, но как только я начинаю вводить красную строку, снова появляется в экспресс в строке импорта, я использую vs code IDE   -  person blackHawk    schedule 02.12.2016
comment
файловая структура: есть только одна папка node_modules и все файлы в корне, такие как файл package.json, tsconfig и server.ts   -  person blackHawk    schedule 02.12.2016


Ответы (1)


С TypeScript 2 вам просто нужно установить типизацию через npm:

npm install @types/lodash --save

И начните использовать его в своем файле ts:

import * as _ from "lodash";
_.padStart("Hello TypeScript!", 20, " ");

Intellisense и т. Д. Будут работать, старый синтаксис /// <reference path="..." /> не нужен.

person lenny    schedule 30.11.2016
comment
Я сделал это для выражения вроде этого npm install @ types / express, он создал папку @types в node_module и напечатал файл index.d.ts и зависимые файлы, теперь, когда я импортирую, как этот import * as express from @ types / express; вар приложение = экспресс (); это не дает мне никакого интеллекта - person blackHawk; 30.11.2016
comment
вы можете попробовать добавить это в свой tsconfig.json компилятор Опции: "typeRoots" : ["./node_modules/@types"] - person lenny; 30.11.2016
comment
это все еще не дает интеллекта, переменная приложения любого типа - person blackHawk; 30.11.2016
comment
странно, я просто попробовал это в своем приложении, и это сработало. какой загрузчик модулей вы используете? какая версия машинописного текста? - person lenny; 30.11.2016
comment
Нет никакого загрузчика модулей, который я просто импортирую: D - person blackHawk; 30.11.2016
comment
Я просто импортирую с помощью модульной системы ES - person blackHawk; 30.11.2016
comment
Фактически в моем предыдущем проекте, который был более года назад, я только что обновил tsd и начал работать, да, у меня был загрузчик модулей в angular (systemjs), но никого на стороне узла, - person blackHawk; 30.11.2016
comment
Нужен ли нам загрузчик модулей? - person blackHawk; 30.11.2016
comment
Вы можете отредактировать свой вопрос и добавить дополнительную информацию о настройке вашего проекта? - person lenny; 30.11.2016