使用没有@types的React组件库

时间:2016-10-24 02:50:18

标签: reactjs typescript

我正在使用TypeScript开发React

我想要做的是使用没有@types定义的React组件库。

我想使用这个图书馆 https://github.com/react-component/calendar

在我的React代码中,我写了如下

import * as React from "react";
import * as ReactDOM from "react-dom";
import Calendar from 'rc-calendar';

ReactDOM.render(<Calendar />, document.getElementById('content'));

但我收到错误:

ERROR in ./index.tsx
(4,22): error TS2307: Cannot find module 'rc-calendar'.

我猜测这是因为没有类型定义,但上面的库似乎没有打字稿的类型定义文件。
我如何在TypeScript中使用这样的库?

1 个答案:

答案 0 :(得分:4)

在TypeScript 2.1中,除非您使用--noImplicitAny,否则您只能在没有声明文件的情况下使用此库(前提是已安装)。

但是由于TS 2.1还没有出来,你可以做的是创建一个名为externals.d.ts的文件,内容如下:

declare module "rc-calendar";

这基本上告诉TypeScript“嘿,这件事存在,不要再烦我了,我想用它来做我想要的。”

你也可以给它一个更好的形状。

declare module "rc-calendar" {
    declare var calendar: any;
    export default calendar;
}

现在这个东西只能作为默认导入导入。

你可以继续充实这件事,直到它足够详细。