簡體   English   中英

為什么 react 18.2 教程會拋出 TS2339 Property 'X' does not exist on type 'Readonly<{}>'

[英]Why does the react 18.2 tutorial throws TS2339 Property 'X' does not exist on type 'Readonly<{}>'

我目前正在關注反應教程,但有一次我收到TS2339 Property 'value' does not exist on type 'Readonly<{}>'錯誤

class Board extends React.Component {
  renderSquare(i) {
    return <Square value={i} />;
  }
}

class Square extends React.Component {
  render() {
    return (
      <button className="square">
        {this.props.value}
      </button>
    );
  }
}

為什么我會收到此錯誤,但教程工作正常? 我知道如何通過將屬性添加到 class 或使用接口來修復它。

class Square extends React.Component<{value: string}, {}> {
    render() {
        return (
        <button className="square">
            {this.props.value}
        </button>
        );
    }
}


class Square extends React.Component<ISquare> {
    render() {
        return (
        <button className="square">
            {this.props.value}
        </button>
        );
    }
}

interface ISquare {
  value: string;
}

但是為什么我需要改變一些東西呢? 據我所知,本教程使用的是相同的 React 版本。

為什么我會收到此錯誤,但教程工作正常?

因為那是 JavaScript 教程,而不是 TypeScript 教程,並且 JavaScript 中沒有類型驗證。

嘗試在 JavaScript 文件中執行React.Component<{value: string}, {}>將是語法錯誤。

但是為什么我需要改變一些東西呢? 據我所知,本教程使用的是相同的 React 版本。

因為您使用的是 TypeScript 而不是 JavaScript。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM