WebStorm 9 TypeScript 智能感知(代码完成)失败

WebStorm 9 TypeScript intellisense (code completion) fails

我导入了带有一些 class 定义的外部库。智能感知仅部分起作用,请参见下文。

import BB = require('../services/BB');
var r = new BB.Model.Repository();
var name: string = r.name; // Ok, we've got intellisense here

var func = (repo) => { }; // No intellisense here -- ok of course
var func2 = (repo: BB.Model.Repository) => { }; // No intellisense -- why?
var func3 = function(repo: BB.Model.Repository) { }; // No intellisense -- why?
var func4: (r: BB.Model.Repository)=>void = function(repo): void { }; // No intellisense -- why?
var func5 = () => {
  var repo = new BB.Model.Repository();
  var name:string = repo.name; // Ok, we've got intellisense here
};
var func6 = (repo: any) => {
  var name: string = (<BB.Model.Repository>repo).name; // No intellisense here -- why?
};

问题是什么?我的图书馆有什么问题吗,还是只是 WebStorm?

顺便说一句,库导出以这种方式跨越几个文件:

// BB.Model.Repository.ts
export = Repository;
class Repository { name: string; }

// BB.Model.ts
export import Repository = require("./BB.Model.Repository");

// BB.ts
export import Model = require ('./BB.Model');

import BB = require('../services/BB');

只有在有文件 /services/BB.ts 的情况下,才能 使用默认的 TypeScript 语言服务 。我怀疑没有这样的文件,你得到的智能感知只是一些偶然的 + 不可靠的代码分析,由 Webstorm 完成,就像它对 JavaScript 所做的一样。 JavaScript 的智能感知 从不保证 可靠。

TypeScript 的类型声明中可能没有类型 BB.Model.Repository space。

我已经报告了这个问题,JetBrains 创建了一个问题: https://youtrack.jetbrains.com/issue/WEB-14844

更新。他们说它已在版本 10 中修复。