问题
在把项目升级到 React18 后,发现原来没问题的组件,如果使用了 children 属性,TS 就会编译失败,错误信息如下
1 | Property 'children' does not exist on type 'Props'. |
原因
children
属性已经在函数组件中被移除,如果需要使用children
属性,则需要手动声明。
解决
第一种方法,手动声明 children 属性。
1 | import * as React from 'react'; |
第二种方法,使用PropsWithChildren
辅助属性。
1 | import React, { PropsWithChildren } from 'react'; |