Я хочу использовать reactstrap
с машинописным текстом.
Для этих типизаций есть типизации: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/reactstrap/index.d.ts
Reactstrap доступен на странице как Reactstrap
глобальная переменная. Я думал, что добавить его в модуль окружения будет так же просто, как добавить react
и react dom
Вот мой global.d.ts
import * as react from "react"
import * as react_dom from "react-dom"
import * as reactstrap from "reactstrap"
declare global {
type React = typeof react
type ReactDOM = typeof react_dom
type Reactstrap = typeof reactstrap
}
Я могу использовать React.Component
и jsx без импорта, они доступны по всему миру. Но я не могу использовать Reactstrap.Alert
, tsc говорит, что Reactstrap.Alert
это тип, но используется как значение.
Я могу вручную добавить эту строку export as namespace Reactstrap
в файл d.ts, но это выглядит как хак, и эти изменения не сохраняются в моем репозитории git. Можно ли экспортировать все классы из одного d.ts и поместить его в пространство имен другого?
Я создал файл _reactstrap.d.ts
рядом с global.d.ts
с таким содержимым:
export * from "reactstrap"
export as namespace Reactstrap;
И изменено global.d.ts
следующим образом:
import * as react from "react"
import * as react_dom from "react-dom"
import * as reactstrap from "./_reactstrap"
declare global {
type React = typeof react
type ReactDOM = typeof react_dom
type Reactstrap = typeof reactstrap
}