TypeScript属性'props'不存在

时间:2017-06-25 16:22:12

标签: typescript react-jsx

我有这个.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>); } }

4 个答案:

答案 0 :(得分:8)

解决方案是安装React Types定义

yarn add -DE @types/react

来自typescript docstypes repo

的更多详情

另一方面,我必须重新启动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++;
  }
}

More about using React in TypeScript

答案 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>;

}