WebStorm 9 TypeScript intellisense (завершение кода) не работает

У меня есть внешняя библиотека, импортированная с некоторыми определениями классов. 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');

person Gábor Imre    schedule 14.01.2015    source источник
comment
Я бы предложил создать заявку в службу поддержки, предоставив подробную информацию (как выглядит Model.Repository, как вы пытаетесь получить информацию и т. д.)   -  person lena    schedule 15.01.2015


Ответы (2)


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

Будет работать только с языковой службой TypeScript по умолчанию только при наличии файла /services/BB.ts. Я подозреваю, что такого файла нет, а получаемый вами intellisense — это просто какой-то случайный + ненадежный удивительный анализ кода, выполненный Webstorm так же, как и для JavaScript. Надежность intellisense для JavaScript никогда не гарантируется.

TypeScript, вероятно, не имеет типа BB.Model.Repository в своем пространстве объявления типа.

person basarat    schedule 14.01.2015
comment
Спасибо за заметки. Однако пути в порядке, tsc тоже плачет, если я переименовываю BB.ts, ничего не меняется, если удалить все скомпилированные файлы .js. Кроме того, у меня были те же файлы и пути в Visual Studio, и его intellisense работает нормально. Наверняка это что-то с WebStorm. - person Gábor Imre; 15.01.2015

Я сообщил о проблеме, в JetBrains создана проблема: https://youtrack.jetbrains.com/issue/WEB-14844

Обновление. Говорят, это исправлено в версии 10.

person Gábor Imre    schedule 16.01.2015