我正在将用 TypeScript(tsx) 编写的新组件添加到由 vanilla ES6 react components(jsx) 组成的现有代码库中。将现有的 jsx 组件导入 tsx 组件时,我正在为 jsx 组件添加类型定义。
我的问题是如何为使用 connect 连接到 redux 的 jsx 组件添加类型定义
假设我有一个现有的 jsx 组件:
class DateField extends React.Component {
...
}
function mapStateToProps(state) {
return {
locale: state.systemUser.language.langKey
};
}
export default connect(mapStateToProps) (DateField);
这个组件的类型定义会是什么样子?
注意:如果没有连接,我会编写如下类型定义:
import * as React from 'react';
import * as moment from "moment";
export type IonDateFieldChange = (value: string | Date | moment.Moment) => void;
export interface IDateFieldProps {
value: string | Date | moment.Moment
onChange?: IonDateFieldChange
placeholder?: string
}
declare class DateField extends React.Component<IDateFieldProps,any> {}