现在我正在尝试在本地环境中开发 redash。
我遇到了错误 TS2565:在“npm run build”中分配之前使用了属性“defaultProps”
操作系统:WSL2 Ubuntu 18.04 LTS
重划线:v9.0.0 beta ( git clone https://github.com/getredash/redash.git
)
我之前安装的:
node: 14.17.2
npm: 6.14.13
typeScript: 4.3.5 // sudo npm install -g typescript
Python: 3.6.9
node-gyp: 8.1.0
有错误npm run build
src/components/ColorPicker/Input.tsx:47:38 - error TS2565: Property 'defaultProps' is used before being assigned.
47 type Props = OwnProps & typeof Input.defaultProps;
实际上,我已经通过将声明 Input.defaultProps 的部分的语句(第 91 行)移动到使用它的部分(第 46 行)之前解决了这个错误。
编辑 Input.tsx 之前
# used in line 47
type Props = OwnProps & typeof Input.defaultProps;
...
# declared in line 91
Input.defaultProps = {
color: "#FFFFFF",
presetColors: null,
presetColumns: 8,
onChange: () => {},
onPressEnter: () => {},
};
编辑 Input.tsx 后
# declared in line 46
Input.defaultProps = {
color: "#FFFFFF",
presetColors: null,
presetColumns: 8,
onChange: () => {},
onPressEnter: () => {},
};
# used in line 53
type Props = OwnProps & typeof Input.defaultProps;
...
如您所见,这是一个简单的问题,只需将声明语句更改为放在 using 语句之前即可解决。
Label.tsx,Swatch.tsx,index.tsx,JsonViewInteractive.tsx,ContextHelp.tsx,Section.tsx,Switch.tsx,createTabbedEditor.tsx ...大约22个文件(.tsx)有相同的错误(我认为这个错误是与打字稿语法有关。)我想知道为什么会发生此错误以及如何在不更改每个语句的情况下更有效地修复此错误
请建议。
谢谢!