我使用的是WebStorm 2016.1.2和TypeScript 2(在WebStorm的设置中设置自定义版本)。
我已经安装了@types/node
,@types/express
,@types/serve-static
个软件包(因为我不需要'打字和#39;以及TypeScript 2的更多信息)
根文件夹包含以下tsconfig
:
{
"compileOnSave": true,
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"preserveConstEnums": true,
"sourceMap": true,
"inlineSources": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
}
}
server
子文件夹包含此tsconfig
:
{
"compileOnSave": true,
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"noEmitHelpers": false,
"strictNullChecks": false,
"typeRoots": [
"../node_modules/@types"
]
}
}
服务器/ serverApp.ts:
/// <reference types="express" />
/// <reference types="express-serve-static-core" />
/// <reference types="serve-static" />
/// <reference types="node" />
import * as express from 'express'
var path = require('path');
export class ServerApp {
private _App: express.Application; //express.Express
constructor() {
this._App = express();
}
public setRoutes() {
this._App.use(express.static(path.resolve("./"), { index: 'index.html' }));
...
根文件夹编译工作正常(Angular2); server
文件夹编译也可以。
但当我 Ctrl +点击 on&#34;表达&#34; import * as express from 'express'
字符串中的单词 - IDE将我导航到express
node_modules文件夹,而不导航到@types/express
文件夹。
点击&#34;应用程序&#34;在express.Application
- 没有给我任何东西。
我对this._App.use
,express().use
,express.static
等没有智能感知。
因此看起来所有对象都被解析为ANY且IDE在设计时没有足够的信息。
我怎样才能使用Intellisense for express等?