Skip to content

Autocomplete suggestions for missing properties when creating new objects/literals of an expected type #3074

@niieani

Description

@niieani

TypeScript gives autocomplete suggestions for object properties and literals when a type is known at the time the object is being created / argument typed, i.e. explicitly declared, inferred or cast.

This is how it works:
screencast 2016-12-23 16-20-13

I've been a long time TypeScript user and have recently started contributing to a large project which is based on Flow and this is the single feature that I miss the most (right next to live-feedback). I have tried multiple Flowtype integrations (Atom/Nuclide, WebStorm, VSCode, SublimeText) and none of them offer this type of autocompletion, so I presume the problem is that the Flow server simply does not offer this information.

These are some of the scenarios that should be supported:

  1. explicitly declared
type Type = { a: string }
const a: Type = {
  // ... autocomplete all properties in Type
}
  1. type known through a nested definition
type OtherType = { a: string }
type Type = { a: OtherType }
const a: Type = {
  a: {
    // ... autocomplete all properties in OtherType
  }
}
  1. type inferred / expected
type Type = { a: string };
function example(param: Type) { };
example({ /* ... autocomplete all properties in Type */ });
  1. type declared indirectly
type Type = { a: string }
function example(): Type {
  return {
    // ... autocomplete all properties in Type
  }
}
  1. type cast
type Type = { a: string }
function example() {
  return ({
    // ... autocomplete all properties in Type
  } : Type)
}

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