我正在使用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中使用这样的库?
答案 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;
}
现在这个东西只能作为默认导入导入。
你可以继续充实这件事,直到它足够详细。