我在react中使用Typescript,并且随后的文件引发很多错误,我不确定为什么(它作为js工作),但是我怀疑这与散布运算符有关吗?
import React from 'react'
import { Subscribe } from 'unstated'
const getStoreAsProps = (storeArr) => {
const storeProps = {}
storeArr.map((value) => (storeProps[value.name] = value))
return storeProps
}
const withStore = (...args) => (Element) => () => (
<Subscribe to={[...args]}>{(...args) => <Element {...getStoreAsProps(args)} />}</Subscribe>
)
export default withStore
tsc
引发的错误是
workspace / app / store / index.ts:11:14-出现错误TS1005:“>”。
11 {(... args)=>} ~~
workspace / app / store / index.ts:11:16-错误TS1005:“)”。
11 {(... args)=>} 〜
workspace / app / store / index.ts:11:19-错误TS1109:表达式 预期的。
11 {(... args)=>} ~~~
workspace / app / store / index.ts:11:26-错误TS1005:“,”预期。
11 {(... args)=>} 〜
workspace / app / store / index.ts:11:30-错误TS1136:属性分配 预期的。
11 {(... args)=>} 〜
workspace / app / store / index.ts:11:40-错误TS1005:';'预期的。
11 {(... args)=>} ~~
workspace / app / store / index.ts:11:52-错误TS1005:“>”。
11 {(... args)=>} 〜
workspace / app / store / index.ts:11:80-错误TS1109:表达式 预期的。
11 {(... args)=>} 〜
workspace / app / store / index.ts:11:81-错误TS1109:表达式 预期的。
11 {(... args)=>} 〜
workspace / app / store / index.ts:11:83-错误TS1110:预期类型。
11 {(... args)=>} 〜
workspace / app / store / index.ts:11:84-错误TS1161:未终止 正则表达式文字。
11 {(... args)=>}
workspace / app / store / index.ts:12:1-错误TS1128:声明或 声明。
12)〜
如果有帮助,语法高亮显示也将在那里中断
答案 0 :(得分:2)
该错误表明编译器无法识别JSX语法。为了使其能够被识别,文件应具有.tsx扩展名,而当前具有.ts扩展名。
jsx
compiler option也应启用并设置为react
。
答案 1 :(得分:0)
我有同样的问题:
let temp: any = ...props.data.map((row:any) => {return row.json});
已经像上面一样导入了反应:
import * as React from "react";
还将tsx选项设置为在tsconfig中反应
现在我回答自己的问题:
Ofc,如果您正在处理对象,则需要使用Object.assign()
let temp: any = Object.assign({}, props.data.map((row:any) => {return row.json}));