René's URL Explorer Experiment


Title: Inferred type changes from 5.5 to 5.6 · Issue #60077 · microsoft/TypeScript · GitHub

Open Graph Title: Inferred type changes from 5.5 to 5.6 · Issue #60077 · microsoft/TypeScript

X Title: Inferred type changes from 5.5 to 5.6 · Issue #60077 · microsoft/TypeScript

Description: 🔎 Search Terms variance 🕗 Version & Regression Information This changed in commit or PR #57909 (bisected via every-ts) ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.2#code/CYUwxgNghgTiAEYD2A7AzgF3gMwFzwB4AFAPgAoAoeHFfMgBx...

Open Graph Description: 🔎 Search Terms variance 🕗 Version & Regression Information This changed in commit or PR #57909 (bisected via every-ts) ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.2#code/CYUwxgNgh...

X Description: 🔎 Search Terms variance 🕗 Version & Regression Information This changed in commit or PR #57909 (bisected via every-ts) ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.2#code/CYUwx...

Opengraph URL: https://github.com/microsoft/TypeScript/issues/60077

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Inferred type changes from 5.5 to 5.6","articleBody":"### 🔎 Search Terms\n\n- variance\n\n### 🕗 Version \u0026 Regression Information\n\n- This changed in commit or PR #57909 (bisected via `every-ts`)\r\n\n\n### ⏯ Playground Link\n\nhttps://www.typescriptlang.org/play/?ts=5.6.2#code/CYUwxgNghgTiAEYD2A7AzgF3gMwFzwB4AFAPgAoAoeHFfMgBxiXrXyIEp4BeE+ANyQBLYABoq8QSkEYA-GzGce8IgG4KFSRhAxsUMAiJMW8AN7i4AR3yYYkgOZrqzWdYy2UDigF91ydFkZmNG4cSmoGNiM0RV4AclixahN4S3wAIjT4LwU1CkCWADpnCgB6EvgAURgmGAkUeAAVAGV4AFYCgDYReBQkLEl4EFgIQW1+bTRBVDQKIA\n\n### 💻 Code\n\n```ts\r\ndeclare const f: \u003cP\u003e(\r\n  fn: (props: P) =\u003e void,\r\n  init?: P,\r\n) =\u003e P;\r\n\r\ninterface Props {\r\n  req: string;\r\n  opt?: string;\r\n}\r\n\r\nconst props = f(\r\n  (p: Props) =\u003e '',\r\n  { req: \"\" },\r\n);\r\n\r\nprops.opt\r\n// Error in TS 5.6, not in earlier versions\r\n```\r\n\n\n### 🙁 Actual behavior\n\n`P` is inferred as `{req: string}`, so accessing the optional property causes a TypeScript error.\n\n### 🙂 Expected behavior\n\n`P` should be inferred as `Props`, as it is in TS 5.5 (and earlier). If you drop the `init` parameter from the call to `f`, then `P` is also inferred to be `Props` in TS 5.6.\n\n### Additional information about the issue\n\nThis seems related to #59764 but I'm not sure it's the same, so I figured I'd file an issue. I tried the same code on the [playground] for #59709 and it does not fix this issue.\r\n\r\ncc @Andarist for whether TS 5.6 is right and I'm wrong 😄 \r\n\r\n[playground]: https://www.typescriptlang.org/play/?ts=5.7.0-pr-59709-8#code/CYUwxgNghgTiAEYD2A7AzgF3gMwFzwB4AFAGngCUA+ACgCh4cV9qAHGJFtfIgSngF5KFEvXgBLFGIwB+biL6D4RANy1aEjCBjYoYBEXad4Ab1FwAjvkwwJAc1UMOMqxhsp7tAL5rk6LGw40ARw6BlZuQzQFIQByGJEGY3gLfAAiVPhPeVVaAM4AOidaIA","author":{"url":"https://github.com/danvk","@type":"Person","name":"danvk"},"datePublished":"2024-09-26T21:00:47.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/60077/TypeScript/issues/60077"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:5f2a41ee-56e7-3f75-31eb-8bb875095eb7
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idE27C:22B5CC:3CBFDB:4FBE51:6A614E66
html-safe-noncebb583cc2f948cd177e457de79009bc502acb0a07b3b70bae05ef92b5c1ce31c4
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFMjdDOjIyQjVDQzozQ0JGREI6NEZCRTUxOjZBNjE0RTY2IiwidmlzaXRvcl9pZCI6Ijc0MTM5NzM0NzE1NTc5MzA1OTkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac0d7b9c613d21d18089e77ea6d1a7b733bfe90f1d5d801edf1a53093ff666e6d5
hovercard-subject-tagissue:2551523755
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/microsoft/TypeScript/60077/issue_layout
twitter:imagehttps://opengraph.githubassets.com/f22419d8700d875a374176bc3746900f9c63da3077d510497a9487dba7d616d0/microsoft/TypeScript/issues/60077
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/f22419d8700d875a374176bc3746900f9c63da3077d510497a9487dba7d616d0/microsoft/TypeScript/issues/60077
og:image:alt🔎 Search Terms variance 🕗 Version & Regression Information This changed in commit or PR #57909 (bisected via every-ts) ⏯ Playground Link https://www.typescriptlang.org/play/?ts=5.6.2#code/CYUwxgNgh...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamedanvk
hostnamegithub.com
expected-hostnamegithub.com
None35b919fdb8e6752d2ed95a144e761ca5e924557563e2ed0a5ebf6c4430cdeeb6
turbo-cache-controlno-preview
go-importgithub.com/microsoft/TypeScript git https://github.com/microsoft/TypeScript.git
octolytics-dimension-user_id6154722
octolytics-dimension-user_loginmicrosoft
octolytics-dimension-repository_id20929025
octolytics-dimension-repository_nwomicrosoft/TypeScript
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id20929025
octolytics-dimension-repository_network_root_nwomicrosoft/TypeScript
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release1e22b08b60ccb67c3791f565bed248565260e611
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/microsoft/TypeScript/issues/60077#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FTypeScript%2Fissues%2F60077
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
Code QualityEnforce quality at mergehttps://github.com/features/code-quality
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FTypeScript%2Fissues%2F60077
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=microsoft%2FTypeScript
Reloadhttps://github.com/microsoft/TypeScript/issues/60077
Reloadhttps://github.com/microsoft/TypeScript/issues/60077
Reloadhttps://github.com/microsoft/TypeScript/issues/60077
Please reload this pagehttps://github.com/microsoft/TypeScript/issues/60077
microsoft https://github.com/microsoft
TypeScripthttps://github.com/microsoft/TypeScript
Notifications https://github.com/login?return_to=%2Fmicrosoft%2FTypeScript
Fork 13.6k https://github.com/login?return_to=%2Fmicrosoft%2FTypeScript
Star 110k https://github.com/login?return_to=%2Fmicrosoft%2FTypeScript
Code https://github.com/microsoft/TypeScript
Issues 5k+ https://github.com/microsoft/TypeScript/issues
Pull requests 21 https://github.com/microsoft/TypeScript/pulls
Actions https://github.com/microsoft/TypeScript/actions
Projects https://github.com/microsoft/TypeScript/projects
Models https://github.com/microsoft/TypeScript/models
Wiki https://github.com/microsoft/TypeScript/wiki
Security and quality 0 https://github.com/microsoft/TypeScript/security
Insights https://github.com/microsoft/TypeScript/pulse
Code https://github.com/microsoft/TypeScript
Issues https://github.com/microsoft/TypeScript/issues
Pull requests https://github.com/microsoft/TypeScript/pulls
Actions https://github.com/microsoft/TypeScript/actions
Projects https://github.com/microsoft/TypeScript/projects
Models https://github.com/microsoft/TypeScript/models
Wiki https://github.com/microsoft/TypeScript/wiki
Security and quality https://github.com/microsoft/TypeScript/security
Insights https://github.com/microsoft/TypeScript/pulse
Inferred type changes from 5.5 to 5.6https://github.com/microsoft/TypeScript/issues/60077#top
QuestionAn issue which isn't directly actionable in codehttps://github.com/microsoft/TypeScript/issues?q=state%3Aopen%20label%3A%22Question%22
https://github.com/danvk
danvkhttps://github.com/danvk
on Sep 26, 2024https://github.com/microsoft/TypeScript/issues/60077#issue-2551523755
Improve logic that chooses co- vs. contra-variant inferences #57909https://github.com/microsoft/TypeScript/pull/57909
https://www.typescriptlang.org/play/?ts=5.6.2#code/CYUwxgNghgTiAEYD2A7AzgF3gMwFzwB4AFAPgAoAoeHFfMgBxiXrXyIEp4BeE+ANyQBLYABoq8QSkEYA-GzGce8IgG4KFSRhAxsUMAiJMW8AN7i4AR3yYYkgOZrqzWdYy2UDigF91ydFkZmNG4cSmoGNiM0RV4AclixahN4S3wAIjT4LwU1CkCWADpnCgB6EvgAURgmGAkUeAAVAGV4AFYCgDYReBQkLEl4EFgIQW1+bTRBVDQKIAhttps://www.typescriptlang.org/play/?ts=5.6.2#code/CYUwxgNghgTiAEYD2A7AzgF3gMwFzwB4AFAPgAoAoeHFfMgBxiXrXyIEp4BeE+ANyQBLYABoq8QSkEYA-GzGce8IgG4KFSRhAxsUMAiJMW8AN7i4AR3yYYkgOZrqzWdYy2UDigF91ydFkZmNG4cSmoGNiM0RV4AclixahN4S3wAIjT4LwU1CkCWADpnCgB6EvgAURgmGAkUeAAVAGV4AFYCgDYReBQkLEl4EFgIQW1+bTRBVDQKIA
#59764https://github.com/microsoft/TypeScript/issues/59764
playgroundhttps://www.typescriptlang.org/play/?ts=5.7.0-pr-59709-8#code/CYUwxgNghgTiAEYD2A7AzgF3gMwFzwB4AFAGngCUA+ACgCh4cV9qAHGJFtfIgSngF5KFEvXgBLFGIwB+biL6D4RANy1aEjCBjYoYBEXad4Ab1FwAjvkwwJAc1UMOMqxhsp7tAL5rk6LGw40ARw6BlZuQzQFIQByGJEGY3gLfAAiVPhPeVVaAM4AOidaIA
#59709https://github.com/microsoft/TypeScript/pull/59709
@Andaristhttps://github.com/Andarist
QuestionAn issue which isn't directly actionable in codehttps://github.com/microsoft/TypeScript/issues?q=state%3Aopen%20label%3A%22Question%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.