Skip to content

Design Meeting Notes, 2/5/2021 #42672

Closed
Closed
@DanielRosenwasser

Description

@DanielRosenwasser

tsconfig Option Recategorization

#42514

  • We wanted to revise the config entries in our documentation, along within tsc --init
  • We decide to emit whatever we put into tsc --help
  • If we were to strip down the options that go into tsc --init, would we rephrase.
  • Some of the names were not exactly how we want to - "linting" for example.
  • "Debugging the Compiler" -> "Compiler Diagnostics"
  • "Language" -> ... "Language and Environment"
  • "Strictness Extended" -> "Thorough"
    • ("thorough" with a certain UK accent was very tough to catch)
  • "Output Formatting" for pretty and noErrorTruncation.
  • "'Lints' sounds good, right?"
    • Strict ones wouldn't be called "lint", so that's strange.
    • People already think of TypeScript as a linter sometimes - the non-strict.
    • Sounds like the best way out is to categorize them all in the same bucket of strictness checks.
  • "Editor Support"? Why not LSP?
    • Most people don't know LSP
    • Where should disableSizeLimit go?
      • Potentially Editor Support, potentially JavaScript.
      • Ultimately doesn't matter, a JS user wouldn't come to this page if things aren't working, they'd check their editor's documentation.
  • Revisit and review on GitHub

Combining Overloads for Contextual Signatures

#42620

  • In 4.2, we got better at combining overload signatures - now you can call .map on a union of arrays.
    • But their parameter types are contextually typed by an intersection type. That creates an overload list.
  • With this PR, we look at contextual overload lists and synthesize a new "combined" contextual signature
    • Only under noImplicitAny, otherwise breaking change.
  • Only break we've found is when being contextually typed by a union type, one which has one signature, one which has multiple.
    • We used to discard the type with multiple overload signatures, and contextually type by the type with just one.
  • What exactly is a "sufficiently compatible" signature?
    • If each of the members of a union have the right type parameters, etc.
  • Looks like a nice change overall for 4.3, get it in early for more testing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Design NotesNotes from our design meetings

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions