Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design Meeting Notes, 2/5/2021 #42672

Closed
DanielRosenwasser opened this issue Feb 5, 2021 · 0 comments
Closed

Design Meeting Notes, 2/5/2021 #42672

DanielRosenwasser opened this issue Feb 5, 2021 · 0 comments
Labels
Design Notes Notes from our design meetings

Comments

@DanielRosenwasser
Copy link
Member

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.
@DanielRosenwasser DanielRosenwasser added the Design Notes Notes from our design meetings label Feb 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Design Notes Notes from our design meetings
Projects
None yet
Development

No branches or pull requests

1 participant