Я хочу создать файл index.d.ts
, который ссылается на некоторые типы из популярного пакета NPM, известного как redux
.
Вещи, которые я уже пробовал:
(вверху моего index.d.ts
файла)
/// <reference path="../../../node_modules/redux/index.d.ts" />
Это не работает.Я подозреваю, что это потому, что файл redux/index.d.ts
вообще не объявляет пространство имен.Когда я редактирую redux/index.d.ts
файл и оборачиваю все туда declare namespace Redux { ... }
, все работает нормально.Я на redux@^4.0.0
.
/// <reference types="redux" />
Это не сработает, если я не установлю пакет NPM @types/redux/@3.6.31
, в котором есть старые устаревшие типы, которые не соответствуют опубликованным.Последняя версия пакета @types/redux
является устаревшим заполнителем, который говорит об использовании официальных redux
типов пакетов (которые не работают).
import { Middleware } from "redux";
Когда я помещал показанное выше выражение import
в мой файл index.d.ts
, каждое объявление в файле разрывалось (то есть в любом другом месте, где я зависел от своего собственногоФайл index.d.ts
для типов перестал читать любые типы вообще из него.) Из того, что я прочитал, добавление оператора import
к типу файла d.ts
заставляет Typescript считать этот файл модулем, а не файлом определения.
Плохие (IMO) обходные пути, которые работают, но не совсем:
- Установка пакета NPM
@types/redux@3.6.31
вместо последней устаревшей версии-заполнителя @types/redux
. - Редактирование моей копии
node_modules/redux/index.d.ts
для переноса всего в пространство имен, например, declare namespace Redux { ... }
.
Другая информация:
Мой проект был загружен с create-react-app
v2 какПроект JavaScript.Я просто использую d.ts
файлы для документирования некоторых интерфейсов.Мой редактор - последняя / стабильная версия VSCode.