Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回typescript中的16个数组元素_Javascript_Reactjs_Typescript_Jsx - Fatal编程技术网

Javascript 返回typescript中的16个数组元素

Javascript 返回typescript中的16个数组元素,javascript,reactjs,typescript,jsx,Javascript,Reactjs,Typescript,Jsx,我想使用新的react 16功能在我的渲染中返回数组元素,但是我得到了类型脚本错误属性“type”在类型“Element[]”中丢失 const Elements: StatelessComponent<{}> = () => ([ <div key="a"></div>, <div key="b"></div> ]); const元素:无状态组件=()=>([ , ]); 我错过了什么?使用@types/react

我想使用新的react 16功能在我的
渲染中返回数组元素
,但是我得到了类型脚本错误
属性“type”在类型“Element[]”中丢失

const Elements: StatelessComponent<{}> = () => ([
  <div key="a"></div>,
  <div key="b"></div>
]);
const元素:无状态组件=()=>([
,
]);

我错过了什么?使用@types/react 16.0.10typescript 2.5.3

我检查了最新的打字,他们忘记在无状态组件界面中添加新定义。我已经提出了这个问题,应该很快就能解决

从类组件返回数组是有效的,所以如果您现在真的需要它,您可以将功能组件转换为类组件

class Elements extends React.Component<{}> {

  render() {
    return [
       <div key="a"></div>,
       <div key="b"></div>
    ]

  }
}
类元素扩展React.Component{
render(){
返回[
,
]
}
}
或者使用模块扩充临时扩展React类型。只需将以下代码放在一个.ts文件中,typescript就会自动检测定义中的更改

declare module "react" {
  interface StatelessComponent<P = {}> {
    (props: P & { children?: ReactNode }, context?: any): ReactElement<any>[] | ReactElement<any> | null;
    propTypes?: ValidationMap<P>;
    contextTypes?: ValidationMap<any>;
    defaultProps?: Partial<P>;
    displayName?: string;
  }
}
声明模块“react”{
接口组件{
(props:P&{children?:ReactNode},context?:any):ReactElement[]| ReactElement | null;
propTypes?:ValidationMap

; contextTypes?:ValidationMap; defaultProps?:部分

; displayName?:字符串; } }

或使用:

render(){
返回
,
}

它还是一个新版本,打字还没有准备好。这里有一个链接,您可以跟踪进度:(他们几天前合并了它,但人们仍然有问题)感谢链接!你好是否与该问题有关联?仍然没有修复=\谢谢。这是我能找到的关于这个问题的最新讨论:Typescript回购中有一个PR正在等待合并。看起来现在有一个更新的PR,但它仍然没有解决:我认为重构到类组件并不能解决这个问题。请检查好电话!React希望返回一个对象而不是数组,所以这是一种可靠的方法
render() {
    return 
       <>
        <div key="a"></div>,
        <div key="b"></div>
       </>
}