奇怪的TypeScript绝对是WebStorm中的类型解析

时间:2016-11-29 13:12:58

标签: node.js typescript webstorm

我使用的是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.useexpress().useexpress.static等没有智能感知。

因此看起来所有对象都被解析为ANY且IDE在设计时没有足够的信息。

我怎样才能使用Intellisense for express等?

0 个答案:

没有答案