From ceea6ca929d2aa249749b582275db847890a3303 Mon Sep 17 00:00:00 2001 From: Albert Zheng Date: Sat, 15 Oct 2016 01:13:49 +0800 Subject: [PATCH] Fixes for supporting TypeScript 2.0.3 (#3358) --- components/alert/index.tsx | 2 +- components/auto-complete/index.tsx | 9 +++++---- components/back-top/index.tsx | 2 +- components/breadcrumb/Breadcrumb.tsx | 2 +- components/date-picker/index.tsx | 2 +- components/form/Form.tsx | 2 +- components/icon/index.tsx | 2 +- components/message/index.tsx | 4 ++-- components/notification/index.tsx | 15 +++++++++++++-- components/select/index.tsx | 5 +++-- components/switch/index.tsx | 1 + components/table/Table.tsx | 2 +- components/table/filterDropdown.tsx | 2 +- components/tabs/index.tsx | 2 +- components/upload/interface.tsx | 2 +- 15 files changed, 34 insertions(+), 20 deletions(-) mode change 100644 => 100755 components/alert/index.tsx mode change 100644 => 100755 components/auto-complete/index.tsx mode change 100644 => 100755 components/back-top/index.tsx mode change 100644 => 100755 components/breadcrumb/Breadcrumb.tsx mode change 100644 => 100755 components/date-picker/index.tsx mode change 100644 => 100755 components/form/Form.tsx mode change 100644 => 100755 components/icon/index.tsx mode change 100644 => 100755 components/message/index.tsx mode change 100644 => 100755 components/notification/index.tsx mode change 100644 => 100755 components/select/index.tsx mode change 100644 => 100755 components/switch/index.tsx mode change 100644 => 100755 components/table/Table.tsx mode change 100644 => 100755 components/table/filterDropdown.tsx mode change 100644 => 100755 components/tabs/index.tsx mode change 100644 => 100755 components/upload/interface.tsx diff --git a/components/alert/index.tsx b/components/alert/index.tsx old mode 100644 new mode 100755 index 942ee6d14235..826815869fe5 --- a/components/alert/index.tsx +++ b/components/alert/index.tsx @@ -18,7 +18,7 @@ export interface AlertProps { /** Additional content of Alert */ description?: React.ReactNode; /** Callback when close Alert */ - onClose?: (event) => void; + onClose?: React.MouseEventHandler; /** Whether to show icon */ showIcon?: boolean; style?: React.CSSProperties; diff --git a/components/auto-complete/index.tsx b/components/auto-complete/index.tsx old mode 100644 new mode 100755 index a2bada795831..84b9d167e4be --- a/components/auto-complete/index.tsx +++ b/components/auto-complete/index.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import Select, { Option, OptGroup } from '../select'; +import Select, { OptionProps, OptGroupProps } from '../select'; +import { Option, OptGroup } from 'rc-select'; import classNames from 'classnames'; export interface SelectedValue { @@ -23,13 +24,13 @@ export interface AutoCompleteProps { defaultValue?: string | Array | SelectedValue | Array; value?: string | Array | SelectedValue | Array; allowClear?: boolean; - onChange?: (value) => void; + onChange?: (value: string | Array | SelectedValue | Array) => void; disabled?: boolean; } export default class AutoComplete extends React.Component { - static Option = Option; - static OptGroup = OptGroup; + static Option = Option as React.ClassicComponentClass; + static OptGroup = OptGroup as React.ClassicComponentClass; static defaultProps = { prefixCls: 'ant-select', diff --git a/components/back-top/index.tsx b/components/back-top/index.tsx old mode 100644 new mode 100755 index 2cf436ac5def..c3635db8cc13 --- a/components/back-top/index.tsx +++ b/components/back-top/index.tsx @@ -25,7 +25,7 @@ const easeInOutCubic = (t, b, c, d) => { export interface BackTopProps { visibilityHeight?: number; - onClick?: (event) => void; + onClick?: React.MouseEventHandler; target?: () => HTMLElement | Window; prefixCls?: string; className?: string; diff --git a/components/breadcrumb/Breadcrumb.tsx b/components/breadcrumb/Breadcrumb.tsx old mode 100644 new mode 100755 index 0754a4aec251..bbc7116192b0 --- a/components/breadcrumb/Breadcrumb.tsx +++ b/components/breadcrumb/Breadcrumb.tsx @@ -8,7 +8,7 @@ export interface BreadcrumbProps { routes?: Array; params?: Object; separator?: string | React.ReactNode; - itemRender?: (route, params, routes, paths) => React.ReactNode; + itemRender?: (route: any, params: any, routes: Array, paths: Array) => React.ReactNode; style?: React.CSSProperties; }; diff --git a/components/date-picker/index.tsx b/components/date-picker/index.tsx old mode 100644 new mode 100755 index c98e71eb71a5..229a40f95eef --- a/components/date-picker/index.tsx +++ b/components/date-picker/index.tsx @@ -16,7 +16,7 @@ export interface PickerProps { popupStyle?: React.CSSProperties; locale?: any; size?: 'large' | 'small' | 'default'; - getCalendarContainer?: (trigger) => React.ReactNode; + getCalendarContainer?: (trigger: any) => React.ReactNode; prefixCls?: string; inputPrefixCls?: string; } diff --git a/components/form/Form.tsx b/components/form/Form.tsx old mode 100644 new mode 100755 index 5024554865a2..f83d6bc7c187 --- a/components/form/Form.tsx +++ b/components/form/Form.tsx @@ -62,7 +62,7 @@ export type WrappedFormUtils = { /** 收集子节点的值的时机 */ trigger?: string; /** 可以把 onChange 的参数转化为控件的值,例如 DatePicker 可设为:(date, dateString) => dateString */ - getValueFromEvent?: (...args) => any; + getValueFromEvent?: (...args: any[]) => any; /** 校验子节点值的时机 */ validateTrigger?: string; /** 校验规则,参见 [async-validator](https://github.com/yiminghe/async-validator) */ diff --git a/components/icon/index.tsx b/components/icon/index.tsx old mode 100644 new mode 100755 index e758f4435791..4460b49e3a4c --- a/components/icon/index.tsx +++ b/components/icon/index.tsx @@ -6,7 +6,7 @@ export interface IconProps { type: string; className?: string; title?: string; - onClick?: (e) => void; + onClick?: React.MouseEventHandler; spin?: boolean; } diff --git a/components/message/index.tsx b/components/message/index.tsx old mode 100644 new mode 100755 index 8874acfd433c..0ea7ef2e9f7a --- a/components/message/index.tsx +++ b/components/message/index.tsx @@ -55,7 +55,7 @@ function notice( type ConfigContent = React.ReactNode | string; type ConfigDuration = number; -type ConfigOnClose = () => void; +export type ConfigOnClose = () => void; export interface ConfigOptions { top?: number; @@ -64,7 +64,7 @@ export interface ConfigOptions { } export default { - info(content: ConfigContent, duration?: ConfigDuration, onClose?: ConfigOnClose) { + info(content: ConfigContent, duration?: ConfigDuration, onClose?: () => ConfigOnClose) { return notice(content, duration, 'info', onClose); }, success(content: ConfigContent, duration?: ConfigDuration, onClose?: ConfigOnClose) { diff --git a/components/notification/index.tsx b/components/notification/index.tsx old mode 100644 new mode 100755 index 5c0cbe2d36ca..3cc659645b30 --- a/components/notification/index.tsx +++ b/components/notification/index.tsx @@ -92,8 +92,19 @@ function notice(args) { }); } -const api = { - open(args) { +const api: { + success?(args: ArgsProps): void; + error?(args: ArgsProps): void; + info?(args: ArgsProps): void; + warn?(args: ArgsProps): void; + warning?(args: ArgsProps): void; + + open(args: ArgsProps): void; + close(key: string): void; + config(options: ConfigProps): void; + destroy(): void; +} = { + open(args: ArgsProps) { notice(args); }, close(key) { diff --git a/components/select/index.tsx b/components/select/index.tsx old mode 100644 new mode 100755 index 1b7e667437d6..8c5323e3b8fd --- a/components/select/index.tsx +++ b/components/select/index.tsx @@ -35,7 +35,7 @@ export interface SelectProps { style?: React.CSSProperties; dropdownStyle?: React.CSSProperties; dropdownMenuStyle?: React.CSSProperties; - onChange?: (value) => void; + onChange?: (value: SelectValue) => void; } export interface OptionProps { @@ -53,7 +53,8 @@ export interface SelectContext { }; } -export { Option, OptGroup }; +// => It is needless to export the declaration of below two inner components. +// export { Option, OptGroup }; export default class Select extends React.Component { static Option = Option as React.ClassicComponentClass; diff --git a/components/switch/index.tsx b/components/switch/index.tsx old mode 100644 new mode 100755 index 7547480f9db3..993152aa3d53 --- a/components/switch/index.tsx +++ b/components/switch/index.tsx @@ -12,6 +12,7 @@ export interface SwitchProps { onChange?: (checked: boolean) => any; checkedChildren?: React.ReactNode; unCheckedChildren?: React.ReactNode; + disabled?: boolean; } export default class Switch extends React.Component { diff --git a/components/table/Table.tsx b/components/table/Table.tsx old mode 100644 new mode 100755 index d60850ff34cd..8b8ed39f6244 --- a/components/table/Table.tsx +++ b/components/table/Table.tsx @@ -750,7 +750,7 @@ export default class Table extends React.Component { const { pagination } = this.state; if (pagination.size) { size = pagination.size; - } else if (this.props.size === 'middle' || this.props.size === 'small') { + } else if (this.props.size as string === 'middle' || this.props.size === 'small') { size = 'small'; } let total = pagination.total || this.getLocalData().length; diff --git a/components/table/filterDropdown.tsx b/components/table/filterDropdown.tsx old mode 100644 new mode 100755 index 66e573f31a62..5e25cf88de3c --- a/components/table/filterDropdown.tsx +++ b/components/table/filterDropdown.tsx @@ -6,7 +6,7 @@ import Checkbox from '../checkbox'; import Radio from '../radio'; export interface FilterDropdownMenuWrapperProps { - onClick?: Function; + onClick?: React.MouseEventHandler; children?: any; className?: string; } diff --git a/components/tabs/index.tsx b/components/tabs/index.tsx old mode 100644 new mode 100755 index 9143e46fcca8..526e02725518 --- a/components/tabs/index.tsx +++ b/components/tabs/index.tsx @@ -75,7 +75,7 @@ export default class Tabs extends React.Component { } = this.props; let className = classNames({ [this.props.className]: !!this.props.className, - [`${prefixCls}-mini`]: size === 'small' || size === 'mini', + [`${prefixCls}-mini`]: size === 'small' || size as string === 'mini', [`${prefixCls}-vertical`]: tabPosition === 'left' || tabPosition === 'right', [`${prefixCls}-card`]: type.indexOf('card') >= 0, [`${prefixCls}-${type}`]: true, diff --git a/components/upload/interface.tsx b/components/upload/interface.tsx old mode 100644 new mode 100755 index 26e1deda75ba..c7d5fe33cbb3 --- a/components/upload/interface.tsx +++ b/components/upload/interface.tsx @@ -30,7 +30,7 @@ export interface UploadProps { defaultFileList?: Array; fileList?: Array; action: string; - data?: Object | ((File) => any); + data?: Object | ((file: File) => any); headers?: HttpRequestHeader; showUploadList?: boolean; multiple?: boolean;