添加打字稿类型以反应用javascript编写的组件

时间:2018-04-18 07:42:51

标签: javascript reactjs typescript

我有一组用javascript和flow编写的反应组件,我想添加一些类型来支持typescript。我不完全确定如何处理这个问题,所以任何帮助都会受到赞赏。 这是我的项目结构:

/
|_src
  |_index.js
  |_components
    |_index.js
    |_ComponentName
      |_index.js
      |_ComponentName.js

2 个答案:

答案 0 :(得分:1)

我之前没有这样做过,但我遇到过这个网站可能对您有所帮助: https://blog.logrocket.com/how-why-a-guide-to-using-typescript-with-react-fffb76c61614

答案 1 :(得分:0)

更新

到目前为止,我已尝试过这些方法:

// inside ComponentName folder
// index.d.ts
// import {ComponentName} from '/path/to/ComponentName/folder'

import * as React from 'react';

export = ComponentName
export as namespace ComponentName;

declare namespace ComponentName {
  interface ComponentProps { }
  const ComponentName: React.SFC<ComponentProps> // for stateless functional components
}

备选方案#2

// inside ComponentName folder
// index.d.ts
// import ComponentName from "ComponentName";
declare module "ComponentName" { // play around with this ex: `projectName/ComponentName`
  import * as React from 'react';
  interface ComponentProps { }
  const ComponentName: React.SFC<ComponentProps>; // stateless fn component
  export default ComponentName; // play with this to suit your export flavor ex: export {ComponentName}
}

通过创建.tsx文件并导入组件来测试它是否有效。 在编辑器中需要更多的intellisense工作,但到目前为止它显示缺少道具错误。