Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Gábor ImreОтветов: 2

У меня есть внешняя библиотека, импортированная с некоторыми определениями классов. 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');
  • Я бы предложил создать заявку в службу поддержки, предоставив подробную информацию (как выглядит Model.Repository, как вы пытаетесь получить информацию и т. д.) lena 15.01.2015

typescriptintellisensewebstorm

Ответы

Ответ 1 · basarat

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

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

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

Ответ 2 · Gábor Imre

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы