Przeglądaj źródła

support typescript

jim 8 lat temu
rodzic
commit
2baef5e8e3

+ 15 - 14
src/components/Authorized/index.d.ts

@@ -1,15 +1,19 @@
-import * as React from "react";
-import * as H from "history";
-import { RouteProps } from "react-router";
+import * as React from 'react';
+import { RouteProps } from 'react-router';
 
 type authorityFN = () => string;
 
 type authority = string | Array<string> | authorityFN | Promise<any>;
 
+export type IReactComponent<P = any> =
+  | React.StatelessComponent<P>
+  | React.ComponentClass<P>
+  | React.ClassicComponentClass<P>;
+
 interface Secured {
-  (authority: authority, error?: React.ReactNode): (
-    target: React.ReactNode
-  ) => React.ReactNode;
+  (authority: authority, error?: React.ReactNode): <T extends IReactComponent>(
+    target: T,
+  ) => T;
 }
 
 export interface AuthorizedRouteProps extends RouteProps {
@@ -18,16 +22,14 @@ export interface AuthorizedRouteProps extends RouteProps {
 export class AuthorizedRoute extends React.Component<
   AuthorizedRouteProps,
   any
-> {
-  constructor(props: AuthorizedRouteProps);
-}
+> {}
 
 interface check {
-  (
+  <T extends IReactComponent, S extends IReactComponent>(
     authority: authority,
-    target: React.ReactNode,
-    Exception: React.ReactNode
-  ): React.ReactNode;
+    target: T,
+    Exception: S,
+  ): T | S;
 }
 
 interface AuthorizedProps {
@@ -39,7 +41,6 @@ export class Authorized extends React.Component<AuthorizedProps, any> {
   static Secured: Secured;
   static AuthorizedRoute: typeof AuthorizedRoute;
   static check: check;
-  constructor(props: AuthorizedProps);
 }
 
 declare function renderAuthorize(currentAuthority: string): typeof Authorized;

+ 1 - 0
src/components/Charts/Bar/index.d.ts

@@ -9,6 +9,7 @@ export interface BarProps {
     y: number;
   }>;
   autoLabel?: boolean;
+  style?: React.CSSProperties;
 }
 
 export default class Bar extends React.Component<BarProps, any> {}

+ 1 - 0
src/components/Charts/ChartCard/index.d.ts

@@ -6,6 +6,7 @@ export interface ChartCardProps {
   footer?: React.ReactNode;
   contentHeight?: number;
   avatar?: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export default class ChartCard extends React.Component<ChartCardProps, any> {}

+ 1 - 0
src/components/Charts/Field/index.d.ts

@@ -2,6 +2,7 @@ import * as React from "react";
 export interface FieldProps {
   label: React.ReactNode;
   value: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export default class Field extends React.Component<FieldProps, any> {}

+ 1 - 0
src/components/Charts/Gauge/index.d.ts

@@ -5,6 +5,7 @@ export interface GaugeProps {
   height: number;
   bgColor?: number;
   percent: number;
+  style?: React.CSSProperties;
 }
 
 export default class Gauge extends React.Component<GaugeProps, any> {}

+ 3 - 2
src/components/Charts/MiniBar/index.d.ts

@@ -1,11 +1,12 @@
-import * as React from "react";
+import * as React from 'react';
 export interface MiniBarProps {
   color?: string;
   height: number;
   data: Array<{
-    x: number;
+    x: number | string;
     y: number;
   }>;
+  style?: React.CSSProperties;
 }
 
 export default class MiniBar extends React.Component<MiniBarProps, any> {}

+ 1 - 0
src/components/Charts/MiniProgress/index.d.ts

@@ -4,6 +4,7 @@ export interface MiniProgressProps {
   color?: string;
   strokeWidth?: number;
   percent?: number;
+  style?: React.CSSProperties;
 }
 
 export default class MiniProgress extends React.Component<

+ 2 - 2
src/components/Charts/Pie/index.d.ts

@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
 export interface PieProps {
   animate?: boolean;
   color?: string;
@@ -7,7 +7,7 @@ export interface PieProps {
   padding?: [number, number, number, number];
   percent?: number;
   data?: Array<{
-    x: string;
+    x: string | string;
     y: number;
   }>;
   total?: string;

+ 1 - 0
src/components/Charts/Radar/index.d.ts

@@ -9,6 +9,7 @@ export interface RadarProps {
     label: string;
     value: string;
   }>;
+  style?: React.CSSProperties;
 }
 
 export default class Radar extends React.Component<RadarProps, any> {}

+ 1 - 0
src/components/Charts/TagCloud/index.d.ts

@@ -5,6 +5,7 @@ export interface TagCloudProps {
     value: number;
   }>;
   height: number;
+  style?: React.CSSProperties;
 }
 
 export default class TagCloud extends React.Component<TagCloudProps, any> {}

+ 1 - 0
src/components/Charts/TimelineChart/index.d.ts

@@ -8,6 +8,7 @@ export interface TimelineChartProps {
   titleMap: { y1: string; y2: string };
   padding?: [number, number, number, number];
   height?: number;
+  style?: React.CSSProperties;
 }
 
 export default class TimelineChart extends React.Component<

+ 2 - 1
src/components/Charts/WaterWave/index.d.ts

@@ -1,9 +1,10 @@
-import * as React from "react";
+import * as React from 'react';
 export interface WaterWaveProps {
   title: React.ReactNode;
   color?: string;
   height: number;
   percent: number;
+  style?: React.CSSProperties;
 }
 
 export default class WaterWave extends React.Component<WaterWaveProps, any> {}

+ 13 - 13
src/components/Charts/index.d.ts

@@ -1,16 +1,16 @@
-export { default as numeral } from "numeral";
-export { default as ChartCard } from "./ChartCard";
-export { default as Bar } from "./Bar";
-export { default as Pie } from "./Pie";
-export { default as Radar } from "./Radar";
-export { default as Gauge } from "./Gauge";
-export { default as MiniArea } from "./MiniArea";
-export { default as MiniBar } from "./MiniBar";
-export { default as MiniProgress } from "./MiniProgress";
-export { default as Field } from "./Field";
-export { default as WaterWave } from "./WaterWave";
-export { default as TagCloud } from "./TagCloud";
-export { default as TimelineChart } from "./TimelineChart";
+import * as numeral from 'numeral';
+export { default as ChartCard } from './ChartCard';
+export { default as Bar } from './Bar';
+export { default as Pie } from './Pie';
+export { default as Radar } from './Radar';
+export { default as Gauge } from './Gauge';
+export { default as MiniArea } from './MiniArea';
+export { default as MiniBar } from './MiniBar';
+export { default as MiniProgress } from './MiniProgress';
+export { default as Field } from './Field';
+export { default as WaterWave } from './WaterWave';
+export { default as TagCloud } from './TagCloud';
+export { default as TimelineChart } from './TimelineChart';
 
 declare const yuan: (value: number | string) => string;
 

+ 5 - 3
src/components/DescriptionList/index.d.ts

@@ -1,15 +1,17 @@
-import * as React from "react";
+import * as React from 'react';
 export interface DescriptionListProps {
-  layout?: "horizontal" | "vertical";
+  layout?: 'horizontal' | 'vertical';
   col?: number;
   title: React.ReactNode;
   gutter?: number;
-  size?: "large" | "small";
+  size?: 'large' | 'small';
+  style?: React.CSSProperties;
 }
 
 declare class Description extends React.Component<
   {
     term: React.ReactNode;
+    style?: React.CSSProperties;
   },
   any
 > {}

+ 1 - 0
src/components/Ellipsis/index.d.ts

@@ -3,6 +3,7 @@ export interface EllipsisProps {
   tooltip?: boolean;
   length?: number;
   lines?: number;
+  style?: React.CSSProperties;
 }
 
 export default class Ellipsis extends React.Component<

+ 1 - 0
src/components/Exception/index.d.ts

@@ -6,6 +6,7 @@ export interface ExceptionProps {
   img?: string;
   actions?: React.ReactNode;
   linkElement?: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export default class Exception extends React.Component<ExceptionProps, any> {}

+ 2 - 1
src/components/FooterToolbar/index.d.ts

@@ -1,6 +1,7 @@
-import * as React from "react";
+import * as React from 'react';
 export interface FooterToolbarProps {
   extra: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export default class FooterToolbar extends React.Component<

+ 3 - 2
src/components/GlobalFooter/index.d.ts

@@ -1,11 +1,12 @@
 import * as React from "react";
 export interface GlobalFooterProps {
-  links: Array<{
+  links?: Array<{
     title: React.ReactNode;
     href: string;
     blankTarget?: boolean;
   }>;
-  copyright: React.ReactNode;
+  copyright?: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export default class GlobalFooter extends React.Component<

+ 2 - 1
src/components/HeaderSearch/index.d.ts

@@ -1,10 +1,11 @@
-import * as React from "react";
+import * as React from 'react';
 export interface HeaderSearchProps {
   placeholder?: string;
   dataSource?: Array<string>;
   onSearch?: (value: string) => void;
   onChange?: (value: string) => void;
   onPressEnter?: (value: string) => void;
+  style?: React.CSSProperties;
 }
 
 export default class HeaderSearch extends React.Component<

+ 30 - 0
src/components/Login/index.d.ts

@@ -0,0 +1,30 @@
+import * as React from 'react';
+import Button from 'antd/lib/button';
+export interface LoginProps {
+  defaultActiveKey?: string;
+  onTabChange?: (key: string) => void;
+  onSubmit?: (error: any, values: any) => void;
+}
+
+export interface TabProps {
+  key?: string;
+  tab?: React.ReactNode;
+}
+export class Tab extends React.Component<TabProps, any> {}
+
+export interface LoginItemProps {
+  name?: string;
+  rules?: any[];
+  onGetCaptcha?: () => void;
+}
+
+export class LoginItem extends React.Component<LoginItemProps, any> {}
+
+export default class Login extends React.Component<LoginProps, any> {
+  static Tab: typeof Tab;
+  static UserName: typeof LoginItem;
+  static Password: typeof LoginItem;
+  static Mobile: typeof LoginItem;
+  static Captcha: typeof LoginItem;
+  static Submit: typeof Button;
+}

+ 9 - 8
src/components/NoticeIcon/index.d.ts

@@ -1,10 +1,11 @@
-import * as React from "react";
+import * as React from 'react';
 export interface NoticeIconData {
-  avatar: string;
-  title: React.ReactNode;
-  description: React.ReactNode;
-  datetime: React.ReactNode;
-  extra: React.ReactNode;
+  avatar?: string;
+  title?: React.ReactNode;
+  description?: React.ReactNode;
+  datetime?: React.ReactNode;
+  extra?: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export interface NoticeIconProps {
@@ -29,8 +30,8 @@ export interface NoticeIconProps {
 }
 
 export interface NoticeIconTabProps {
-  list: Array<NoticeIconData>;
-  title: string;
+  list?: Array<NoticeIconData>;
+  title?: string;
   emptyText?: React.ReactNode;
   emptyImage?: string;
 }

+ 3 - 2
src/components/NumberInfo/index.d.ts

@@ -1,12 +1,13 @@
-import * as React from "react";
+import * as React from 'react';
 export interface NumberInfoProps {
   title?: React.ReactNode | string;
   subTitle?: React.ReactNode | string;
   total?: React.ReactNode | string;
-  status?: "up" | "down";
+  status?: 'up' | 'down';
   theme?: string;
   gap?: number;
   subTotal?: number;
+  style?: React.CSSProperties;
 }
 
 export default class NumberInfo extends React.Component<NumberInfoProps, any> {}

+ 2 - 1
src/components/PageHeader/index.d.ts

@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
 export interface PageHeaderProps {
   title?: React.ReactNode | string;
   logo?: React.ReactNode | string;
@@ -12,6 +12,7 @@ export interface PageHeaderProps {
   tabActiveKey?: string;
   onTabChange?: (key: string) => void;
   linkElement?: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export default class PageHeader extends React.Component<PageHeaderProps, any> {}

+ 3 - 2
src/components/Result/index.d.ts

@@ -1,10 +1,11 @@
-import * as React from "react";
+import * as React from 'react';
 export interface ResultProps {
-  type: "success" | "error";
+  type: 'success' | 'error';
   title: React.ReactNode;
   description?: React.ReactNode;
   extra?: React.ReactNode;
   actions?: React.ReactNode;
+  style?: React.CSSProperties;
 }
 
 export default class Result extends React.Component<ResultProps, any> {}

+ 3 - 1
src/components/TagSelect/index.d.ts

@@ -1,10 +1,12 @@
-import * as React from "react";
+import * as React from 'react';
 export interface TagSelectProps {
   onChange?: (value: Array<string>) => void;
   expandable?: boolean;
+  style?: React.CSSProperties;
 }
 export interface TagSelectOptionProps {
   value: string;
+  style?: React.CSSProperties;
 }
 
 export class TagSelectOption extends React.Component<

+ 3 - 2
src/components/Trend/index.d.ts

@@ -1,8 +1,9 @@
-import * as React from "react";
+import * as React from 'react';
 
 export interface TrendProps {
   colorful?: boolean;
-  flag: "up" | "down";
+  flag: 'up' | 'down';
+  style?: React.CSSProperties;
 }
 
 export default class Trend extends React.Component<TrendProps, any> {}