7

Я разрабатываю сервер с использованием SailsJS. Он в основном внедряет все вспомогательные сервисы модели, а также мои собственные службы в глобальное пространство имен. Мне было бы очень полезно, если бы я смог получить Intellisense для этих услуг.Как использовать определения дескрипторов для получения Intellisense для моих собственных служб Javascript в VS Code?

Я сначала установил типовые и установил глобальные определения типов для lodash и узла. Он работает как шарм после создания jsconfig.json и tsconfig.json файлов.

Далее я хотел создать базовый файл определений для своих собственных служб. Я создал каталог в типизация/глобал с index.d.ts файлов в нем:

declare namespace foo { 
    export function bar(); 
} 
declare var baz: { some: number }; 

Это просто чтобы убедиться, что я не тратить определение времени написания, если они не будут работать ,

Далее я включил этот index.d.ts файла в типизация/index.d.ts путем добавления ссылки тега:

/// <reference path="globals/psiewakacje/index.d.ts" /> 

К моему удивлению, он не работает в моем проекте-х Файлы Javascript. При вводе foo. или baz. Я не получаю никакого разумного Intellisense.

 

только Intellisense поддержку, которую я смог получить, когда я импортировал эти услуги в каждом файле с помощью:

import * as InternalParser from '../services/InternalParser'; 

или

var InternalParser = require('../services/InternalParser'); 

, но это не использует Файлы описания Typcript и просто дают мне экспортированные свойства. В целом, нежелательный результат.

 

Интересно, как заставить его работать правильно. Я посмотрел файлы определения типа узла и lodash, и они делают то же самое: объявляют переменную/пространство имен с определенным типом. Однако их определения работают в Javascript, а у меня нет. Как все исправить?

ответ

0

Вам не нужно добавлять ссылку на typings/index.d.ts. Самое простое - просто добавить свои объявления в файл глобальной декларации в любом месте вашего проекта.

Далее, вместо использования var и namespace, просто используйте interface.

Например.в корне каталога, вы можете легко добавить

// index.d.ts 
interface Foo { 
    bar:() => void 
} 

interface Baz { some: number } 
0

Я была такая же проблема и обнаружил, что редактор (VSCode) смотрел в неправильном каталоге для файла, проблема была решена за счет относительного ссылающегося на правильный путь , конкретный путь будет меняться, но в моем примере это было:

/// <reference path="../../typings/index.d.ts" /> 

index.d.ts содержит следующее:

/// <reference path="globals/core-js/index.d.ts" /> 
/// <reference path="globals/jasmine/index.d.ts" /> 
/// <reference path="globals/node/index.d.ts" /> 

и моя структура каталогов/файлов появляется как е ollows:

enter image description here

+0

Для меня проблема не получает Intellisense для пользовательских модулей, а не те, что установлены с типизации, поэтому, к сожалению, это не решение для меня. Спасибо за попытку! – Voreny

+0

Ах понял! Я дам вам знать, найду ли я что-нибудь еще, что может помочь. – Joelster

Смежные вопросы