我有这个.tsx文件
with open ("save_data.csv", "w") as file_object:
for y, x in zip (y_array, x_array):
file_object.write (("{}\t{}\n").format (y, x))
但是,TypeScript会抛出此错误:
import React, { Component } from 'react';
export class SidebarItem extends Component {
constructor (props) {
super(props);
}
render () {
return (<li>{this.props.children}</li>);
}
}
答案 0 :(得分:8)
解决方案是安装React Types定义
yarn add -DE @types/react
的更多详情
另一方面,我必须重新启动vscode以使linting正确启动。
答案 1 :(得分:4)
TypeScript遵循ES模块规范,但是React遵循CommonJS。 This article touches on that among other things。
这样导入React将解决此问题:
import * as React from 'react';
export class SidebarItem extends React.Component {
constructor (props) {
super(props);
}
render () {
return (<li>{this.props.children}</li>);
}
}
答案 2 :(得分:3)
您可以尝试以下编写React Comp的方式。
var counter =0;
function myFunction() {
if (counter%2 == 0) {
greeting = "A Day";
counter++;
} else {
greeting = "B Day";
counter++;
}
}
答案 3 :(得分:0)
如果您的组件没有状态,则根本不必使用课程。您还可以使用无状态反应组件(SFC)作为已解答的for this question。
const MyStatelessComponent : React.StatelessComponent<{}> = props =>
<li>{props.children}</li>;
或者如果你的标记变得越来越大:
const MyStatelessComponent : React.StatelessComponent<{}> = props => {
return <li>{props.children}</li>;
}