Skip to content

[Enhancement Proposal] Detect pointless conditionals. #4889

Open
@whmountains

Description

@whmountains

This is a feature request that will likely require some discussion and bikeshedding.

Often in Javascript we will check if a value is undefined and do something based on that. Sometimes, however, a value is never defined and the code inside the conditional becomes unreachable. Flow is in a unique position to detect this and warn about it.

Here's a minimal example to explain what I mean:

/* @flow */

// empty exact object type
type Data = {|
	foo: string
|}

const data: Data = {
	foo: "hello there"
}

// unreachable if statement
if (data.bar) {
  console.log('Launch the rockets!')
}

// unreachable default value
console.log(data.bar || 'Default Value')

Here flow has the ability to unequivocally know that the value will not be defined, but the conditional implies that the programmer expected the value to be defined at some point.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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