当前位置: 首页 > 知识库问答 >
问题:

为什么typescript编译器抱怨类型“Readonly”(props)上不存在属性“data”?[重复]

酆耀
2023-03-14

我正在学习typescript,我有点被以下错误卡住了:

Property 'data' does not exist on type 'Readonly<{}> & Readonly<{ children?: ReactNode; }>'.  TS2339

let data = this.props.data as any;
                      ^

biographs。数据已定义,为什么编译器会抱怨它不存在??我肯定错过了一些关键的东西。请注意,我选择了any,因为我真的不想担心面积图的基本类型(至少现在不想,首先我想让这个部分正常工作)。

import React from 'react';
import { AreaChart } from 'recharts';

type BigOGraphProps = {
  data: {
    n: number[],
    oLogNData: number[],
    oNData: number[],
    oNLogNData: number[],
    oNSq2Data: number[],
    o2SqNData: number[],
    oNInvData: number[],
  };
};

export default class BigOGraph extends React.Component {
  constructor(props: BigOGraphProps) {
    super(props);
  }

  render() {
    let leftMargin = 5;
    let data = this.props.data as any;

    return (
      <div>
        <AreaChart data={data} >
        </AreaChart>
      </div>
     );
  }
}

共有2个答案

巩子实
2023-03-14

做出反应。Component是一个通用类,它将props类型作为第一个参数。它默认为any。将其更改为:

React.Component<BigOGraphProps>
杭曦
2023-03-14

正如@Wex所提到的,将BigOGraphProps传递给Component类中的泛型参数并删除构造函数应该就可以了

import React from 'react';

type BigOGraphProps = {
  data: {
    n: number[];
    oLogNData: number[];
    oNData: number[];
    oNLogNData: number[];
    oNSq2Data: number[];
    o2SqNData: number[];
    oNInvData: number[];
  };
};

export default class BigOGraph extends React.Component<BigOGraphProps> {
  render() {
    let leftMargin = 5;
    let data = this.props.data as any;
    return (
      <div>
        <AreaChart data={data} >
        </AreaChart>
      </div>
     );
  }
}
 类似资料:
  • 问题内容: 游乐场执行失败:MyPlayground.playground:109:22:错误:无效使用’()’调用非函数类型’[ClassA.ClassB.Type]’的值时,让didNotCompile = ClassA.ClassB ^ ~~ 问题答案: 如您所述,它可以使用以下语法: 但是,如果我们声明一个: 因此,我想说这是一个错误,也应该无需输入别名即可工作。 更新 :Apple 已经

  • 我使用的是完全修补过的Visual Studio 2013。我正在尝试使用JQuery、JQueryUI和JSRender。我也在尝试使用打字。在ts文件中,我得到如下错误: 类型“{}”上不存在属性“fade div”。

  • 我有一个实现Iterable的类,以便用户可以使用迭代器。我使用泛型来允许用户使用任何类型并使用该类。 这是下面的工作代码,没有警告- 但是,如果我将ListIterator定义如下- 我在 Eclipse 中收到警告, 当我在类后指定泛型类型时,它为什么会抱怨?为了能够在我的类中使用Type,我不应该这样做吗?我在定义CustomStackUsingArray时添加了类型,效果很好。

  • 问题内容: 我有一个非常基本的与tsx交互的程序,我收到一个错误,我无法弄清为什么 git 将此代码克隆 问题答案: 拉下您的存储库并进行检查后,我意识到您没有打字稿的反应类型。 键入是管理和安装TypeScript定义的简单方法 添加这行 并再次运行一次即可解决该问题。尝试一下,让我知道这是否可以解决您的问题:) PS:TypeScript要求您描述对象和数据的形状。如果您查看我之前提供的其他答

  • TypeScript抱怨HTMLElement没有value属性,但当我在JavaScript中使用它时,它可以正常工作。 在JavaScript中,var inputValue=document。getElementById('input1');安慰日志(inputValue.value);//它给出了输入元素的值 我可以知道为什么TypeScript抱怨吗?

  • 问题内容: 在Java的for-each循环中使用泛型时,出现一个奇怪的编译器错误。这是Java编译器错误,还是我真的在这里遗漏了什么? 这是我全班的: 编译器抱怨for-each所在的行:“类型不匹配无法从元素类型Object转换为String。” 如果我进行了微妙的更改,它将编译为: 我知道确实使用泛型,但是我以完全不相关的方式使用它们。如果我尝试遍历T类型的某些内容并返回a 或某种内容,我可