WebStorm 9 TypeScript intellisense(代码完成)失败

时间:2015-01-14 21:05:51

标签: typescript intellisense webstorm

我的外部库导入了一些类定义。 intellisense只能部分工作,见下文。

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');

2 个答案:

答案 0 :(得分:0)

  

导入BB = require(&#39; ../ services / BB&#39;);

如果存在文件/services/BB.ts,则只能使用默认的TypeScript语言服务 。我怀疑没有这样的文件,你得到的intellisense只是Webstorm完成的一些巧妙的+不可靠的代码分析,就像它对JavaScript一样。 JavaScript的intellisense 永远不会保证是可靠的。

TypeScript可能在其类型声明空间中没有类型BB.Model.Repository

答案 1 :(得分:0)

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

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