![](/img/trans.png)
[英]TS2339: Property 'PropTypes' does not exist on type 'typeof React' when porting to Typescript
[英]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.