Title: 5.6 regression: Incorrect param type inference for type with all optional props · Issue #59656 · microsoft/TypeScript · GitHub
Open Graph Title: 5.6 regression: Incorrect param type inference for type with all optional props · Issue #59656 · microsoft/TypeScript
X Title: 5.6 regression: Incorrect param type inference for type with all optional props · Issue #59656 · microsoft/TypeScript
Description: 🔎 Search Terms inference, param 🕗 Version & Regression Information This changed between versions 5.5.4 and 5.6.0 ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.0-dev.20240816#code/JYOwLgpgTgZghgYwgAgMoHsC2EAqBPABxQG8AoZC5A...
Open Graph Description: 🔎 Search Terms inference, param 🕗 Version & Regression Information This changed between versions 5.5.4 and 5.6.0 ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.0-dev.20240816#code/JY...
X Description: 🔎 Search Terms inference, param 🕗 Version & Regression Information This changed between versions 5.5.4 and 5.6.0 ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.0-dev.20240816#cod...
Opengraph URL: https://github.com/microsoft/TypeScript/issues/59656
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"5.6 regression: Incorrect param type inference for type with all optional props","articleBody":"### 🔎 Search Terms\r\n\r\ninference, param\r\n\r\n### 🕗 Version \u0026 Regression Information\r\n\r\n- This changed between versions 5.5.4 and 5.6.0\r\n\r\n### ⏯ Playground Link\r\n\r\nhttps://www.typescriptlang.org/play/?ts=5.6.0-dev.20240816#code/JYOwLgpgTgZghgYwgAgMoHsC2EAqBPABxQG8AoZC5AeiuQHkRkBWAOgDYWAGAGmQgA8iUYNnDIARnmSY4Aa1ABzZGAAWwAM7ICUdAWRQIARwCuwAwBMW5SsZDATEAAo6CAfgBcydWGEgFAblIAX1JScwgEABs4A2QEdBBvZHRxdU86VOgANzhxSIgAHgxsfCIAPkDSGFsEMGAE5BiFAHEIMHUAdR0-UogACgBKdMyoHLzC4iCy5DJKfTbjKEYU9RYCYCI+sDgCPqbkAF5p2bnKJsDTyhoAPVdrS5pkAFFBCMhzT2LcQhRQZhZWAAWe6nR4AQVqxjgkU8FEmyD+WVYHE4AFpxG04Mp0P8UajwlkWAAmThEwGcAAcAEY2Mg9mBkPk4N4BiCggMBoEQlUanUGk1Wu0AMLoKAGWq9QYzEEGMCLZapNYbfrbXb7I7Sy4Uc4guY3O5a6i0MGRADucDwmniYrebI5XNCoEgsEQKAy6myuXyBRwxxB6yIBTBZT6unSQjgYFFADFefUQD7eMGhvQRmNvcGHU7oPAkMgAKogGJ4WMgWrxxPIABKxzp6nQiyQnhwKar-mQIWzLrzdAjUagpfLCUrNb4-EgIHMmkLxcHfIT7s94x9ZV4i9GXsKNdrnfAOddyAAsgl0L1e9BIzG48PfWOJ1P6H2r2X55Xb8QO2EItFYtUX-HlB2Fc+hAAQwE8PockiYwIGbAZDmmLJ0GAcwU2PEBTx+c8oEvAdrwTX1AiAA\r\n\r\n### 💻 Code\r\n\r\n```ts\r\ninterface SomeType {\r\n // On 5.6.0, experiment by making this prop required.\r\n uniqueProp?: string;\r\n}\r\n\r\ndeclare const obs: Observable\u003cSomeType\u003e;\r\n\r\nfunction argGetsWrongType(): Observable\u003c{}\u003e {\r\n return obs.pipe(tap(arg =\u003e {\r\n arg;\r\n //^?\r\n // Expected: SomeType in 5.5.4\r\n // Actual: {} in v5.6.0-beta to 5.6.0-dev.20240816 (at least)\r\n }));\r\n}\r\n\r\nfunction argGetsCorrectType() {\r\n return obs.pipe(tap(arg =\u003e {\r\n arg;\r\n //^?\r\n // Always correct\r\n }));\r\n}\r\n\r\ninterface Observable\u003cT\u003e {\r\n pipe\u003cA\u003e(op: OperatorFunction\u003cT, A\u003e): Observable\u003cA\u003e;\r\n}\r\ninterface UnaryFunction\u003cT, R\u003e { (source: T): R; }\r\ninterface OperatorFunction\u003cT, R\u003e extends UnaryFunction\u003cObservable\u003cT\u003e, Observable\u003cR\u003e\u003e { }\r\ninterface MonoTypeOperatorFunction\u003cT\u003e extends OperatorFunction\u003cT, T\u003e { }\r\ndeclare function tap\u003cT\u003e(next: (value: T) =\u003e void): MonoTypeOperatorFunction\u003cT\u003e;\r\n```\r\n\r\n### 🙁 Actual behavior\r\n\r\n`arg` is inferred as `{}`\r\n\r\n### 🙂 Expected behavior\r\n\r\n`arg` is inferred as `SomeType` as was consistent in v5.5.4\r\n\r\n### Additional information about the issue\r\n\r\n(Google note: See http://cl/664889390 for local workaround)","author":{"url":"https://github.com/trevorade","@type":"Person","name":"trevorade"},"datePublished":"2024-08-16T17:52:50.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":9},"url":"https://github.com/59656/TypeScript/issues/59656"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:f3a03320-7dbf-23e3-4773-225c5b70e252 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A86A:81447:1742D9:1EB47B:6A616A0A |
| html-safe-nonce | c432ab9c2a674cab95bc839e850ffe205c377753e5c1fbcb7b6997c677ef59ca |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBODZBOjgxNDQ3OjE3NDJEOToxRUI0N0I6NkE2MTZBMEEiLCJ2aXNpdG9yX2lkIjoiODQ2ODc4NTM3MzIyOTcwNTczOCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | ebc9199ad9a8ca2ef9dd75ae72e95bf970cf20b93d62fcd6a654dbff6b1197a5 |
| hovercard-subject-tag | issue:2470710460 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/microsoft/TypeScript/59656/issue_layout |
| twitter:image | https://opengraph.githubassets.com/99eda0df3a4aee372801663e87d8ded7eb08354249750f81b8c20f46740e3cd3/microsoft/TypeScript/issues/59656 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/99eda0df3a4aee372801663e87d8ded7eb08354249750f81b8c20f46740e3cd3/microsoft/TypeScript/issues/59656 |
| og:image:alt | 🔎 Search Terms inference, param 🕗 Version & Regression Information This changed between versions 5.5.4 and 5.6.0 ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.0-dev.20240816#code/JY... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | trevorade |
| hostname | github.com |
| expected-hostname | github.com |
| None | a69385f7d268ece7ad25b131bbd70f457024811fc79afcae43785a6849b724e2 |
| turbo-cache-control | no-preview |
| go-import | github.com/microsoft/TypeScript git https://github.com/microsoft/TypeScript.git |
| octolytics-dimension-user_id | 6154722 |
| octolytics-dimension-user_login | microsoft |
| octolytics-dimension-repository_id | 20929025 |
| octolytics-dimension-repository_nwo | microsoft/TypeScript |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 20929025 |
| octolytics-dimension-repository_network_root_nwo | microsoft/TypeScript |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 484cf265a1f970d5c7a5e7c37cb677d8010aa12f |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width