Откуда исходит этот VSCODE intellisense? - PullRequest
0 голосов
/ 26 июня 2018

В VSCODE я вижу следующее значение intellisense:

enter image description here

При исследовании node_modules/sanctuary/index.js я нахожу функцию toMaybe, но она не 'Похоже, определение идет отсюда, потому что они не совпадают

//# toMaybe :: a? -> Maybe a
//.
//. Takes a value and returns Nothing if the value is `null` or `undefined`;
//. Just the value otherwise.
//.
//. ```javascript
//. > S.toMaybe (null)
//. Nothing
//.
//. > S.toMaybe (42)
//. Just (42)
//. ```

Это отличается от других функций, которые обычно отображаются так:

enter image description here

Два вопроса:

  1. Где мне искать дальше?
  2. Как я могу документировать свои собственные функции, подобные этой?

ОБНОВЛЕНИЕ:

Лукас Бах и ippi отметили, что одна часть, Sanctuary.Static.toMaybe<A>(p: A): Maybe<A>, исходит от функции автоматического определения типа.

Даже после удаления всех @types из ~/Library/Caches/typescript/2.9/node_modules/types-registry я все еще вижунекоторые документы.

enter image description here

Мне также не удалось найти текст toMaybe :: a -> Maybe a в файле @types/sanctuary/index.d.ts или где-либо в каталоге @types.

1 Ответ

0 голосов
/ 27 июня 2018

Язык программирования TypeScript, расширенный набор JavaScript, позволяет определять надлежащие типы функций и переменных.TypeScript может быть скомпилирован до JavaScript, который удаляет все аннотации типов, а отдельный файл определения типа (* .d.ts) может быть экспортирован во время транспиляции.Определения типов TypeScript в настоящее время обычно предоставляются для модулей JS либо непосредственно в самом репозитории модулей, либо как часть репозитория DefinitiveTyped .

Чтобы получить аннотации таких типов для собственного кода, вы можете либопрежде всего, пишите свой код на TypeScript или самостоятельно пишите дополнительные файлы определений типов.

Это не единственный способ написания определений типов, но на данный момент самый выдающийся.

Редактировать: Хорошо, я действительно не смотрел на пакет, который вы упомянули ранее.Но я попробовал это, и это аннотация IntelliSense, которую он дает мне. VS Screenshot

И, похоже, это происходит из-за набора TS:

toMaybe<A>(p: A | null | undefined): Maybe<A>;

Эти символы находятся по адресу https://www.npmjs.com/package/@types/sanctuary.

...