带打字稿的reactstrap,定义环境模块

时间:2019-05-28 23:16:34

标签: typescript reactstrap

我想将reactstrap与打字稿一起使用。

这些类型有以下类型:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/reactstrap/index.d.ts

Reactstrap在页面上以Reactstrap全局变量的形式提供。我认为在环境模块中添加它就像添加reactreact 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是一种类型,但是像值一样使用。

我可以在d.ts文件中手动添加此字符串export as namespace Reactstrap,但它看起来像是骇客,并且此更改未存储在我的git repo中。是否可以从一个d.ts中导出所有类并将其放入另一个d.ts中?

1 个答案:

答案 0 :(得分:0)

我在_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
}