项目中使用
TypeScript帮助我们检测类型, 方便使用/阅读其它的模块,JS里一般使用PropTypes来定义类型, 但它不是很精确。
TS中对props, state都可以进行限制 - 这适用于类组件与函数组件.(使用到interface,也可以用type,参考:www.typescriptlang.org/docs/handbo…)
1. class组件:
2. function组件:
1.第一种
2.第二种
3. 默认属性值:
这个就要区分了. 类组件与函数组件写法还不一样.(推荐使用函数组件,类组件的defaultProps不是很好理解)
函数组件
1.第一种
2.第二种
类组件
3.传参为回调:
(函数定义参考:www.typescriptlang.org/docs/handbo…)
4.补充:
1.添加参数描述:
参数描述可以在使用的时候看得到
2.给现有的js添加类型声明:
给引入的路径,定义为模块;(使用declare module,参考:www.typescriptlang.org/docs/handbo…)
在模块声明里面对导出的方法或参数定义类型,声明文件统一放入@type文件里管理(待完善补充~)
如果模块是默认导出,用export default,导出多个使用export
例子:(原有的Screen组件)
使用的时候需要引入路径import Screen from '@/common/components/Screen',在js中同样适用,但是js中不会有错误提示;
使用:(backgroundType参数为例:指定值)
5.使用:
1.如果参数传错或者必填参数没传,会有响应的提示
react 自带的Hook搭配TS使用
1.useState:
(其他hook同理)
const [sliderRef, setSliderRef] = useState<number>(0);
// 在useState后面<>中加入类型,不加的话会自动推导默认值的类型
2.特殊说明:
在使用forwardRef的时候(父组件控制子组件)会多一个ref参数:(使用react的React.ForwardRefRenderFunction)
使用:
\