react.js - react中使用typescript一个疑问
本文介绍了react.js - react中使用typescript一个疑问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
大概看了typescript
,但关于泛型
了解的不多,这里的<ToastProps, any>
分别是什么意思?
ToastProps
好像是针对ToastContainer
类的props
,为什么会针对到它的props
呢?
后面的any
又是针对谁?
麻烦大神能详细赐教~万分感谢
解决方案
具体关系要看类的实现,用泛型参数类型来约束类的成员/方法参数类型
但是大部分时候,只要看看types文件中的类/方法签名就能了解
这个是React.Component的类型签名
class Component<P, S> {
constructor(props?: P, context?: any);
setState<K extends keyof S>(f: (prevState: S, props: P) => Pick<S, K>, callback?: () => any): void;
setState<K extends keyof S>(state: Pick<S, K>, callback?: () => any): void;
forceUpdate(callBack?: () => any): void;
render(): JSX.Element | null | false;
props: Readonly<{ children?: ReactNode }> & Readonly<P>;
state: Readonly<S>;
context: any;
refs: {
[key: string]: ReactInstance
};
}
可以看出来,泛型参数的第一项P是针对Component对象的props的,在例子中就是将ToastContainer的props约束为ToastProps
而第二个泛型参数S则针对state,在例子中使用any等于没做任何约束
这篇关于react.js - react中使用typescript一个疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文