напишите определение типа .d.ts машинописного текста в папке node_module

Apr 01 2019

Мне нужно написать файл .d.ts для внешней (npm) библиотеки. Я использую машинописный текст 3.

Мне нужен импорт:

import fakedb from 'fake-indexeddb'; //sorted
// second import I would like:
import dbKeyRange from 'fake-indexeddb/lib/FDBKeyRange'

из types / fake-indexeddb.d.ts:

export = index;
declare const index: IDBFactory;

Как мне написать файл для второго импорта из нужной библиотеки ( fake-indexeddb/lib/FDBKeyRange- an IDBKeyRange)?

Отредактируйте, пока ответ Джураджа Кочана логически является тем, что я должен поместить в файл .d.ts, вопрос в том, как я должен назвать файл, чтобы отладчик и транспилятор находили файл, когда я пишу import dbKeyRange from 'fake-indexeddb/lib/FDBKeyRange'- очевидно, как это находит файл types / fake-indexeddb.d.ts .

Ответы

JurajKocan Apr 01 2019 at 21:24

добавить в декларацию полное имя

declare module 'fake-indexeddb/lib/FDBKeyRange' {
  class dbKeyRange {}
  export default dbKeyRange
}

редактировать

есть некоторые правила для объявлений. добавить корни типов в tsconfig

 "typeRoots": [
  "./node_modules/@types",
  "./whateveryouwant/types"
],

или другой путь не имеет значения. Просто нужно указать в ts config, затем добавить папку с именем вашего модуля. в эту папку добавить index.d.ts

--src
  --types
    --fake-indexeddb
      --index.d.ts
Brent Apr 02 2019 at 03:47

В конце концов я сопоставил путь к папке в моем каталоге типов, и это сработало. окончательный путь к файлу определения был:

types/fake-indexeddb/lib/FDBKeyRange.d.ts

с определением в этом файле.