Skip to content

TypeScript 3.1 improved error UX meta-issue #26077

Description

Continuing on from the release of TypeScript 3.0, we're committed to improving the user experience all around, and following up on both #25310 and #25257.

Error improvements

(:running_man: implies we have an existing PR)

Related error spans

(:running_man: implies we have an existing PR)

Psst, even though the issues are assigned, we'd welcome any help on them!


The following didn't make the cut, or are in 3.2:

Activity

  1. emattias commented on Oct 5, 2018

    @emattias

    Comparing my DX/UX experience from working with flow versus TypeScript, the error messages is one of the few things that I preferred how flow does it. Especially after flow v0.66 release. I would love it if typescript would adopt some for the formatting and helpful information that flow has in their error messages.

    This blog post explains more about the flow 0.66 error message changes: https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2

  2. emattias commented on Dec 14, 2018

    @emattias

    There is so much room for improvement here. For example:

    • prettifying/formatting the outputted types
    • syntax highlighting
    • bold/highlight the conflicting parts

    Heres and example of the ginormous unstructured blob of text that is a ts error with big types involved:

    Type '({ expandedRowIds, orderBy, currentPage, filters: { columns: columnFilters, period, categoryIds }, ...restUrlQueryState }: Pick<Overwrite<DataGridUrlQueryStateUrlSerialized, { filters: { columns: { promotionName?: string | undefined; startDate?: string | undefined; endDate?: string | undefined; "sumFacts.switching.amount"?: string | undefined; "sumFacts.netLift.profit"?: string | undefined; "sumFacts.netLift.amount"?: string | undefined; }; period: Date[]; categoryIds: string[]; }; }>, "hiddenColumnNames" | "filters" | "orderBy" | "expandedRowIds" | "currentPage">, pageSize: any) => Dictionary<any>' is not assignable to type '(a: Overwrite<DataGridUrlQueryStateUrlSerialized, { filters: { columns: { promotionName?: string | undefined; startDate?: string | undefined; endDate?: string | undefined; "sumFacts.switching.amount"?: string | undefined; "sumFacts.netLift.profit"?: string | undefined; "sumFacts.netLift.amount"?: string | undefined; }; period: Date[]; categoryIds: string[]; }; }>) => DataGridQueryVariables'.

    Another interesting thing that happened with flow is the glow project that formatted errors and made them way more readable (I believe all or some of glows functionality got integrated into flow itsself.).

  3. DanielRosenwasser commented on Dec 14, 2018

    @DanielRosenwasser
    MemberAuthor

    Yup, agreed. We have some work that will enable that, but this is a pretty old issue at this point. Opening a specific issue to track that would be super helpful.

  4. emattias commented on Dec 14, 2018

    @emattias

    Tracking exactly what? Should I just create an issue of my last comment or should I break it down in some way?

  5. DanielRosenwasser commented on Dec 14, 2018

    @DanielRosenwasser
    MemberAuthor

    Yup, something like that but with context that you're talking about the command line

  6. emattias commented on Dec 17, 2018

    @emattias

    Done: #29059

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Domain: Error MessagesThe issue relates to error messagingDomain: Related Error SpansSpecifying regions for error messages/diagnostics on multiple locations.Meta-IssueAn issue about the team, or the direction of TypeScript

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions