René's URL Explorer Experiment


Title: Conditional types by ahejlsberg · Pull Request #21316 · microsoft/TypeScript · GitHub

Open Graph Title: Conditional types by ahejlsberg · Pull Request #21316 · microsoft/TypeScript

X Title: Conditional types by ahejlsberg · Pull Request #21316 · microsoft/TypeScript

Description: This PR introduces conditional types which add the ability to express non-uniform type mappings. A conditional type selects one of two possible types based on a condition expressed as a type relationship test: T extends U ? X : Y The type above means when T is assignable to U the type is X, otherwise the type is Y. Evaluation of a conditional type is deferred when evaluation of the condition depends on type variables in T or U, but is resolved to either X or Y when the condition depends on no type variables. An example: type TypeName = T extends string ? "string" : T extends number ? "number" : T extends boolean ? "boolean" : T extends undefined ? "undefined" : T extends Function ? "function" : "object"; type T0 = TypeName; // "string" type T1 = TypeName<"a">; // "string" type T2 = TypeName; // "boolean" type T3 = TypeName<() => void>; // "function" type T4 = TypeName; // "object" Conditional types in which the checked type is a naked type parameter are called distributive conditional types. Distributive conditional types are automatically distributed over union types during instantiation. For example, an instantiation of T extends U ? X : Y with the type argument A | B | C for T is resolved as (A extends U ? X : Y) | (B extends U ? X : Y) | (C extends U ? X : Y). type T10 = TypeName void)>; // "string" | "function" type T12 = TypeName; // "string" | "object" | "undefined" type T11 = TypeName; // "object" In instantiations of a distributive conditional type T extends U ? X : Y, references to T within the conditional type are resolved to individual constituents of the union type (i.e. T refers to the individual constituents after the conditional type is distributed over the union type). Furthermore, references to T within X have an additional type parameter constraint U (i.e. T is considered assignable to U within X). type BoxedValue = { value: T }; type BoxedArray = { array: T[] }; type Boxed = T extends any[] ? BoxedArray : BoxedValue; type T20 = Boxed; // BoxedValue; type T21 = Boxed; // BoxedArray; type T22 = Boxed; // BoxedValue | BoxedArray; Notice that T has the additional constraint any[] within the true branch of Boxed and it is therefore possible to refer to the element type of the array as T[number]. Also, notice how the conditional type is distributed over the union type in the last example. The distributive property of conditional types can conveniently be used to filter union types: type Diff = T extends U ? never : T; // Remove types from T that are assignable to U type Filter = T extends U ? T : never; // Remove types from T that are not assignable to U type T30 = Diff<"a" | "b" | "c" | "d", "a" | "c" | "f">; // "b" | "d" type T31 = Filter<"a" | "b" | "c" | "d", "a" | "c" | "f">; // "a" | "c" type T32 = Diff void), Function>; // string | number type T33 = Filter void), Function>; // () => void type NonNullable = Diff; // Remove null and undefined from T type T34 = NonNullable; // string | number type T35 = NonNullable; // string | string[] function f1(x: T, y: NonNullable) { x = y; // Ok y = x; // Error } function f2(x: T, y: NonNullable) { x = y; // Ok y = x; // Error let s1: string = x; // Error let s2: string = y; // Ok } Conditional types are particularly useful when combined with mapped types: type FunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? K : never }[keyof T]; type FunctionProperties = Pick>; type NonFunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T]; type NonFunctionProperties = Pick>; interface Part { id: number; name: string; subparts: Part[]; updatePart(newName: string): void; } type T40 = FunctionPropertyNames; // "updatePart" type T41 = NonFunctionPropertyNames; // "id" | "name" | "subparts" type T42 = FunctionProperties; // { updatePart(newName: string): void } type T43 = NonFunctionProperties; // { id: number, name: string, subparts: Part[] } Combining all of the above to create a DeepReadonly type that recursively makes all properties of an object read-only and removes all function properties (i.e. methods): type DeepReadonly = T extends any[] ? DeepReadonlyArray : T extends object ? DeepReadonlyObject : T; interface DeepReadonlyArray extends ReadonlyArray> {} type DeepReadonlyObject = { readonly [P in NonFunctionPropertyNames]: DeepReadonly; }; function f10(part: DeepReadonly) { let name: string = part.name; let id: number = part.subparts[0].id; part.id = part.id; // Error part.subparts[0] = part.subparts[0]; // Error part.subparts[0].id = part.subparts[0].id; // Error part.updatePart("hello"); // Error } Similar to union and intersection types, conditional types are not permitted to reference themselves recursively (however, indirect references through interface types or object literal types are allowed, as illustrated by the DeepReadonly example above). For example the following is an error: type ElementType = T extends any[] ? ElementType : T; // Error For further examples see the tests associated with the PR. EDIT: See #21496 for type inference in conditional types. Fixes #12215. Fixes #12424.

Open Graph Description: This PR introduces conditional types which add the ability to express non-uniform type mappings. A conditional type selects one of two possible types based on a condition expressed as a type relati...

X Description: This PR introduces conditional types which add the ability to express non-uniform type mappings. A conditional type selects one of two possible types based on a condition expressed as a type relati...

Opengraph URL: https://github.com/microsoft/TypeScript/pull/21316

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/commits/:range(.:format)
route-controllerpull_requests
route-actioncommits
fetch-noncev2:5320ce6a-c353-c7fe-185b-e772d2311894
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idA65C:105FA5:501E8A4:6AC43A2:6A655A58
html-safe-noncefa308f873797e8b5cc38d34690b52e3b5c4a5985617eee747a689daa285bcff6
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNjVDOjEwNUZBNTo1MDFFOEE0OjZBQzQzQTI6NkE2NTVBNTgiLCJ2aXNpdG9yX2lkIjoiNDE5NzM5NTY2NTI3MzU3NjAyNSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmacb071aea8fc0ed65782c8217a51d7f4323acc5fea2206899b9f08c9ed06215cd5
hovercard-subject-tagpull_request:164138025
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/commits
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
twitter:imagehttps://avatars.githubusercontent.com/u/4226954?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/4226954?s=400&v=4
og:image:altThis PR introduces conditional types which add the ability to express non-uniform type mappings. A conditional type selects one of two possible types based on a condition expressed as a type relati...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None52c76df668885aaff23b50bdca1fa1ea44ac9c1553e888ebc70ff1e4daa4625b
turbo-cache-controlno-preview
diff-viewunified
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
release309153364422b3c499922d1a2a6404910a58ed8e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FTypeScript%2Fpull%2F21316%2Fcommits%2F063eed1a47b873a60e804d748dbe2959f9b51d70
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%2Fpull%2F21316%2Fcommits%2F063eed1a47b873a60e804d748dbe2959f9b51d70
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%2Fpull_requests%2Fshow%2Fcommits&source=header-repo&source_repo=microsoft%2FTypeScript
Reloadhttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
Reloadhttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
Reloadhttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
Please reload this pagehttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
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 20 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
Sign up for GitHub https://github.com/signup?return_to=%2Fmicrosoft%2FTypeScript%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmicrosoft%2FTypeScript%2Fissues%2Fnew%2Fchoose
ahejlsberghttps://github.com/ahejlsberg
masterhttps://github.com/microsoft/TypeScript/tree/master
conditionalTypeshttps://github.com/microsoft/TypeScript/tree/conditionalTypes
Conversation 126 https://github.com/microsoft/TypeScript/pull/21316
Commits 44 https://github.com/microsoft/TypeScript/pull/21316/commits
Checks 0 https://github.com/microsoft/TypeScript/pull/21316/checks
Files changed https://github.com/microsoft/TypeScript/pull/21316/files
Please reload this pagehttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
Conditional types https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#top
Show all changes 44 commits https://github.com/microsoft/TypeScript/pull/21316/files
57ca768 Initial implementation of conditional type operator ahejlsberg Dec 5, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/57ca7680c9f5ec0d772c9dd94294cbcff2a29129
063eed1 Add type relationships and distribute over union types ahejlsberg Dec 8, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
ec2bdfd Add 'T extends U' type operator ahejlsberg Dec 12, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/ec2bdfdb8b0b6bb1940d1659e310c6cf858d009c
43e195d Clean up isGenericXXXType functions ahejlsberg Dec 12, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/43e195d966f65b019f15e2cbc7c16a6e2e47b8d9
61225cc Introduce TypeFlags.Instatiable ahejlsberg Dec 13, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/61225cc57c1ae9c2aea8ecbd15d24b55e9f3d02f
9f74a7a Rename TypeVariable to InstantiableType ahejlsberg Dec 13, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/9f74a7a22887a0e5f85171640b01f66df193b37f
20434fa Inference for conditional and extends type operators ahejlsberg Dec 13, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/20434fabe66cca85208dd7f5be3890a3db29d0c6
ddc631c Fix typo ahejlsberg Dec 13, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/ddc631c5d47150d5227470d64853a059d839e011
000f121 Improve conditional type constraint checking ahejlsberg Dec 13, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/000f121d348913ca13ba1354f21adaf10eabc3c4
27b945b Handle constraints for distributive conditional types ahejlsberg Dec 16, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/27b945b898d0ec2bf9914981b38047e8206993ec
f59e2e6 Accept new baselines ahejlsberg Dec 17, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/f59e2e63316fc826142d88d52f007625ed646c04
14590f1 Move JsxAttributes and MarkerType from TypeFlags to ObjectFlags ahejlsberg Dec 18, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/14590f1884c43966c62eb2016845631e7149df5b
100e4f6 Accept new baselines ahejlsberg Dec 18, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/100e4f6f3b5e4a06081753d01aaedd303e145a34
c5fd2f1 Parse xxx? as JSDoc type when not followed by token that starts type ahejlsberg Dec 19, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/c5fd2f14f38d669f604f8cb40af8f3e0d747c600
341c397 Accept new baselines ahejlsberg Dec 19, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/341c3973a33bbf6c6dadc5aa4ae77a6c53813834
3f4911f Fix linting error ahejlsberg Dec 20, 2017 https://github.com/microsoft/TypeScript/pull/21316/commits/3f4911f44adad5ca4410c2da90a4b8f51a285073
abc8110 Merge branch 'master' into conditionalTypes ahejlsberg Jan 3, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/abc8110e9b97c9c19ca740e46c82f27b837069ad
bb23bb2 Propagate both TypeFlags and ObjectFlags in getSpreadType ahejlsberg Jan 3, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/bb23bb2a9248afb8eb357fffe312e8f9313f6649
c10a552 Eagerly evaluate S extends T when S is definitely or definitely not a… ahejlsberg Jan 14, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/c10a5520e2bd47efdc01ad8ca0fcedcf8a49aaa3
53b1572 Revert to extends check being part of conditional type ahejlsberg Jan 15, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/53b1572ed60283c765fabf32830608f44b1f4458
5094f76 Remove 'T extends U' type constructor ahejlsberg Jan 15, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/5094f7677cedbfde6548627f8d30b2e673d2584c
925da86 Accept new baselines ahejlsberg Jan 15, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/925da864960459f3ffcbf5b5f1400d6e9f9f1cf6
e8d1740 Introduce substitution types to use for constrained type parameters ahejlsberg Jan 15, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/e8d1740da85a0ef75b9e711d9a3f12edd8f25fa7
15baf0e Accept new baselines ahejlsberg Jan 15, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/15baf0ead598d302f7dd501c1bbd94c0edbb1f70
9598acd Properly handle 'any' and 'never' as conditional check type ahejlsberg Jan 15, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/9598acd47702e2e8dee9a43d696d88b2730a2c6b
e96ec8c Erase substitution types in type references and type alias instantiat… ahejlsberg Jan 16, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/e96ec8c2c7bb6ea85610c9462bf6b07ed8b4c7cc
d52fa71 Optimize the sameMap function ahejlsberg Jan 16, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/d52fa71f62dec04e3cdd3b5e4b9016adaf2ddae2
4ec6fdd Merge branch 'master' into conditionalTypes ahejlsberg Jan 17, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/4ec6fdd96fa9a9835e6b9819d8ba0f6feeb8397e
fd0dd6e Separate code path for conditional type instantiation ahejlsberg Jan 18, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/fd0dd6ed4c27fe5dd83fe78b2b3fb0edbe689606
c360c24 Fix parsing ahejlsberg Jan 19, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/c360c24b9b6e054f3bb4dd5cced7b1d161fd5d1a
0e73240 Disallow conditional type following 'extends' ahejlsberg Jan 19, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/0e73240ea41e2c8bd46f6580579f599e8e6f3b34
5204fd5 Add T is related to { [P in xxx]: T[P] } type relationship ahejlsberg Jan 20, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/5204fd5c5f7b881ee12d4632d893ede2e96c40a3
eb314d0 Add tests ahejlsberg Jan 20, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/eb314d00fc92aaf0374192475bde1bdeb7502266
cdd50d4 Accept new baselines ahejlsberg Jan 20, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/cdd50d4d9674788653fcef2529979330f35a784c
fc7d1c3 Revise comments ahejlsberg Jan 20, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/fc7d1c39482d9af525a773e5d4a18a176184fcf8
f19959a Cache substitution types and remove erasure that was too eager ahejlsberg Jan 20, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/f19959afd4b182881160f2fcea1c790e6f8daac5
b869290 Remove unnecessary caching of substitution types ahejlsberg Jan 21, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/b8692901f215eaf6572413cb071569acbde218f8
4c7ec3c Shared code path for getConditionalType and instantiateConditionalType ahejlsberg Jan 21, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/4c7ec3c51aee6b9caa35084f60c15afeba5315b3
b42c6b1 Only conditional types that check naked type parameter distribute ove… ahejlsberg Jan 24, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/b42c6b1db661f413f136195c3e5da95639f0657c
8e337b5 Fix bug in resolveMappedTypeMembers ahejlsberg Jan 24, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/8e337b5121ec9243c07c014e315cfce9b2be597f
4f2b5f3 Merge branch 'master' into conditionalTypes ahejlsberg Jan 30, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/4f2b5f32f9f6301a8c10ac8cda8a8f098c37c094
f990e4e Merge branch 'master' into conditionalTypes ahejlsberg Jan 30, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/f990e4ef998444b69f1e8c42b35b2ade742127c2
01516c8 Update to use TypeFlags.Instantiable in instantiateSymbol ahejlsberg Jan 30, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/01516c84d2ce87c387b3bf037af2e90a25a6c213
d4dc67a Merge branch 'master' into conditionalTypes ahejlsberg Feb 3, 2018 https://github.com/microsoft/TypeScript/pull/21316/commits/d4dc67aab233f5a8834dff16531baf99b16fea78
Clear filters https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
Please reload this pagehttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
Please reload this pagehttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
Prev https://github.com/microsoft/TypeScript/pull/21316/commits/57ca7680c9f5ec0d772c9dd94294cbcff2a29129
Next https://github.com/microsoft/TypeScript/pull/21316/commits/ec2bdfdb8b0b6bb1940d1659e310c6cf858d009c
Please reload this pagehttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70
https://github.com/ahejlsberg
ahejlsberghttps://github.com/microsoft/TypeScript/commits?author=ahejlsberg
src/compiler/checker.tshttps://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
View file https://github.com/microsoft/TypeScript/blob/063eed1a47b873a60e804d748dbe2959f9b51d70/src/compiler/checker.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/TypeScript/pull/21316/commits/{{ revealButtonHref }}
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
https://github.com/microsoft/TypeScript/pull/21316/commits/063eed1a47b873a60e804d748dbe2959f9b51d70#diff-d9ab6589e714c71e657f601cf30ff51dfc607fc98419bf72e04f6b0fa92cc4b8
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.