Skip to content

react/no-unused-prop-types false positive #1008

@mikelambert

Description

@mikelambert

This code:

import React from 'react';

type ObjectType = {
  usedDirectly: string;
  usedFromArray: string;
};

export class UseDirectly extends React.Component {
  props: {
    object: ObjectType;
  }

  render() {
    console.log(this.props.object.usedDirectly);
    return null;
  }
}

export class UseFromArray extends React.Component {
  props: {
    objects: Array<ObjectType>;
  }

  render() {
    console.log(this.props.objects[0].usedFromArray);
    return null;
  }
}

triggers this warning:

5:18  error  'object.usedFromArray' PropType is defined but prop is never used  react/no-unused-prop-types

Though strangely, this code encounters no errors:

import React from 'react';

type ObjectType = {
  usedDirectly: string;
  usedFromArray: string;
};

export class UseDirectly extends React.Component {
  props: {
    object: any;
  }

  render() {
    console.log(this.props.object.usedDirectly);
    return null;
  }
}

export class UseFromArray extends React.Component {
  props: {
    objects: Array<ObjectType>;
  }

  render() {
    console.log(this.props.objects[0].usedFromArray);
    return null;
  }
}

So you don't have to go hunting/searching, the only difference between them is the object: ObjectType vsobject: any. (Not sure why changing UseDirectly would affect the used-ness of usedFromArray field.)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions