【问题标题】:export interface and a class extend Component/PureComponent导出接口和类扩展 Component/PureComponent
【发布时间】:2019-02-01 02:47:07
【问题描述】:

我正在学习一些 react 和 react native 并且对以下内容有疑问

export interface A {
  data: books;
  actions: actions;
  status: statusReport;
}

class myClass extends PureComponent<A> {
}

有人可以解释当我们在做export interface A 然后我们在为myClass 类做&lt;A&gt; 时是什么意思。

【问题讨论】:

    标签: reactjs typescript react-native


    【解决方案1】:

    接口声明定义了一个类型。任何实现A的对象或类都必须具有A定义的特征;因此,它必须具有三个属性:dataactionsstatus

    let a: A = {
    
        // required
        data: {},
        actions: {},
        status: {}, 
    
        // illegal
        next: {},
    };
    

    PureComponent&lt;A&gt; 定义了一个带有A 类型的props 的反应组件。 这意味着props 具有三个属性:dataactionsstatus

    有关详细信息,请参阅type definitions herePureComponent 类扩展了Component 类,Component 类有一个接收props 的构造函数。

    【讨论】:

    • 感谢您的解释。我在 react 或 react native 中找不到任何类似 PureComponent 的语法。 AFAIK任何对象或类实现A,我们应该使用关键字implement
    • PureComponent 是一个类而不是一个接口。一般来说,我们扩展类并实现接口。在 React 文档中找不到任何关于 &lt;A&gt; 的文档的原因是 React 是用 JavaScript 编写的,而 &lt;A&gt; 语法是 TypeScript。官方文档往往只包含 JavaScript 位。
    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2017-01-21
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多