簡體   English   中英

React typescript,類型“typeof TodoFilterItem”上不存在屬性“propTypes”。 TS2339

[英]React typescript, Property 'propTypes' does not exist on type 'typeof TodoFilterItem'. TS2339

我有一個界面

interface ITodoFilterItem  {
  name: string,
  filter: string,
  filterTodos: any
}

和引用它的同一文件中的 class

class TodoFilterItem extends Component<ITodoFilterItem> {
  constructor (props:ITodoFilterItem) {
    super(props);
    this.handleFilter = this.handleFilter.bind(this);
  }

但是當我嘗試在這個文件的底部添加 propTypes 時

TodoFilterItem.propTypes = {
  name: PropTypes.string,
  filter: PropTypes.string,
  filterTodos: PropTypes.any
}

我得到:


Property 'propTypes' does not exist on type 'typeof TodoFilterItem'.  TS2339

僅供參考:我import PropTypes from 'prop-types'; 在頂部

TS 要求在 class 定義中初始化所有 static 屬性。 將以下內容添加到您的 class 以確保 TS 可以正確分析 class。

static propTypes: {
   name: Requireable<string>;
   filter: Requireable<string>;
   filterTodos: Requireable<any>;
};
import React, { Component, Requireable } from 'react';
import PropTypes from 'prop-types';

interface ITodoFilterItem {
    name: string;
    filter: string;
    filterTodos: any;
}

class TodoFilterItem extends Component<ITodoFilterItem> {
    static propTypes: {
        name: Requireable<string>;
        filter: Requireable<string>;
        filterTodos: Requireable<any>;
    };

    constructor(props: ITodoFilterItem) {
        super(props);
        this.handleFilter = this.handleFilter.bind(this);
    }

    handleFilter() {}

    render() {
        return <span />;
    }
}

TodoFilterItem.propTypes = {
    name: PropTypes.string,
    filter: PropTypes.string,
    filterTodos: PropTypes.any,
};

export default TodoFilterItem;

暫無
暫無

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

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