CINXE.COM
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.13.5"/><meta name="theme-color" content="#3178C6"/><meta data-react-helmet="true" name="description" content="TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code."/><meta data-react-helmet="true" property="og:title" content="JavaScript With Syntax For Types."/><meta data-react-helmet="true" property="og:description" content="TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code."/><meta data-react-helmet="true" property="twitter:site" content="typescriptlang"/><style data-href="/styles.0dd29b1a810d6c2acf56.css" data-identity="gatsby-global-css">#top-menu{background-color:#3178c6;clear:both;display:flex;height:3rem;justify-content:space-between;-webkit-user-select:none;user-select:none;z-index:101}#top-menu>.left{display:flex;flex-direction:row;padding-bottom:env(safe-area-inset-bottom)}#top-menu>.right{display:flex;flex-direction:row-reverse;justify-self:flex-end}#top-menu .nav{display:inline-block;text-decoration:none}#top-menu ul{margin:0;padding:0}#top-menu #home-page-logo{font-size:1.5rem;font-weight:600;padding-top:.7rem;width:200px}@media screen and (-ms-high-contrast:active){#top-menu #home-page-logo svg path{fill:blue}}#top-menu #home-page-logo svg{margin-left:1rem;margin-right:.6rem}#top-menu #home-page-logo span{margin-right:.2rem;position:relative;text-decoration:none;top:-.3rem}#top-menu .nav-item{display:inline-block;font-size:1rem;font-weight:600;text-decoration:none}#top-menu .nav-item a{display:block;padding:.95rem .5em .7em}#top-menu .nav-item a:hover{opacity:.8}#top-menu .nav-item a.active,#top-menu .nav-item a:focus{text-decoration:underline}#top-menu a{color:#fff;text-decoration:none}#beta-notification-menu,.gatsby-noscript{background-color:#c63131;color:#fff;padding:.4rem 0;text-align:center;-webkit-user-select:none;user-select:none}#beta-notification-menu a,.gatsby-noscript a{color:#fff}form.search{background-color:#235a97;border-radius:3px 0 0 3px;display:inline-block;height:3rem;padding-left:1rem}form.search svg{margin-right:.3rem;position:relative;top:.1rem}@media screen and (-ms-high-contrast:black-on-white){form.search svg path{fill:#000}}form.search:focus-within{background-color:#358ef1}@media screen and (-ms-high-contrast:black-on-white){form.search:focus-within{border:2px solid #fff}}@media screen and (-ms-high-contrast:white-on-black){form.search:focus-within{border:2px solid #000}}form.search input{-webkit-appearance:none;background-color:#235a97;border:none;border-radius:0;color:#fff;font-size:1rem;font-weight:600;height:3rem;vertical-align:initial!important;width:150px}form.search input:focus-within{background-color:#358ef1}form.search input::placeholder{color:#fff}#like-dislike-subnav,.page-popup{transition:opacity .2s linear}.page-popup{background:#222;border-radius:5px;border-radius:4px;bottom:20px;box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.432),0 .3px .9px 0 rgba(0,0,0,.408);color:#fff;position:fixed;right:20px;z-index:2}.page-popup p{font-size:14px;padding:0 10px}.page-popup div{display:flex}.page-popup div button{background-color:#235a97;border:none;border-radius:0;color:#fff;flex:1 1;flex-grow:1}.page-popup div button.focus,.page-popup div button:hover{background-color:#104261}.page-popup div button.first{border-right:1px solid #fff}.page-popup svg{fill:#fff}#top-menu nav ul .show-only-medium{display:none}#top-menu nav ul .hide-only-medium{display:inline}#top-menu nav ul .show-only-largest,#top-menu nav ul .show-only-small{display:none}@media(max-width:800px){#top-menu nav ul .show-only-small{display:block!important}#top-menu nav ul .show-small{display:inline!important}#top-menu nav ul .hide-only-medium{display:none}#top-menu nav ul .show-only-large{display:none!important}}@media(min-width:767px)and (max-width:900px){#top-menu nav ul .show-only-medium{display:inline!important}#top-menu nav ul .hide-only-medium{display:none!important}}@media(min-width:900px){#top-menu nav ul .show-only-large{display:inline-block!important}}@media(min-width:1050px){#top-menu nav ul .show-only-largest{display:inline-block!important}}@media(max-width:790px){#site-wrapper{margin-bottom:-1px}#my-lang-quick-jump,.hide-small{display:none!important}#top-menu{bottom:0;display:flex;flex-direction:column-reverse;height:auto;left:0;position:fixed;right:0}#top-menu .nav-item{display:block}#top-menu.up{transform:translate(0);transition-timing-function:ease;transition:transform .3s}#top-menu.down{transform:translateY(8.2rem);transition-timing-function:ease;transition:transform .6s}}@media(max-width:790px)and (prefers-reduced-motion:reduce){#top-menu.down,#top-menu.up{transition:none}}@media(max-width:790px){#top-menu #home-page-logo{width:auto}#top-menu .below-small nav{flex-grow:1}#top-menu .below-small nav ul{display:flex}#top-menu .below-small nav ul li{flex:1 1;text-align:center}.above-small .search-section{width:100%}.above-small form.search{display:flex;width:calc(100% - 1rem)}.above-small form.search svg{position:relative;top:1rem}.above-small form.search input{width:200%}#top-menu .ds-dropdown-menu{bottom:140%;left:0!important;margin-left:-34px;min-width:0;right:-180px!important;top:auto!important}#top-menu .ds-dropdown-menu:before{bottom:-7px;left:40px;top:auto;transform:rotate(135deg)}}.skip-to-main{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.skip-to-main:focus{clip:auto;background-color:#faf9f8;border:1px dashed #000;color:#000;height:auto;overflow:auto;padding:20px;position:absolute;text-align:center;width:100%;z-index:999999}#small-device-button-sidebar{display:none}nav#sidebar{background-color:var(--sidebar-background-color);color:var(--alt-text-color);min-width:16rem}nav#sidebar ul{margin:0;padding:0;position:sticky;top:0}nav#sidebar ul li{border-bottom:1px solid var(--sidebar-item-border-color);font-size:1rem;font-weight:400;list-style:none;min-height:2.5rem;padding:0}nav#sidebar ul li button{-webkit-appearance:none;background-color:transparent;border:none;color:var(--alt-text-color);cursor:pointer;display:block;font-size:1rem;font-weight:500;height:2.5rem;padding-left:1rem;position:relative;text-align:left;width:100%}nav#sidebar ul li button .closed path,nav#sidebar ul li button .open path{stroke:var(--text-color)}nav#sidebar ul li button:active,nav#sidebar ul li button:focus{background-color:var(--sidebar-active-button-background-color);color:var(--alt-text-color)}nav#sidebar ul li button span{position:absolute;right:20px}nav#sidebar ul li ul ul{margin-left:.2rem}nav#sidebar ul li.highlighted{background-color:var(--sidebar-list-active-background-color)}nav#sidebar ul li.highlighted svg path{stroke:#3178c6}nav#sidebar ul li.closed span.open,nav#sidebar ul li.closed ul,nav#sidebar ul li.open>button>span.closed{display:none}nav#sidebar ul li.open>ul{background-color:var(--sidebar-list-background-color)}nav#sidebar ul li.open.highlighted ul{background-color:var(--sidebar-list-active-background-color)}nav#sidebar ul li ul{margin:0;padding:0}nav#sidebar ul li ul a{color:var(--alt-text-color);display:block;flex-grow:1;padding-bottom:.5rem;padding-left:1rem;padding-top:.5rem;text-decoration:none}nav#sidebar ul li ul li{list-style:none}nav#sidebar ul li ul li a{font-weight:300;margin-right:-.5rem}nav#sidebar ul li ul li:hover{margin-right:-.3rem;padding-left:.3rem;transition:padding-left .1s ease-out}@media(prefers-reduced-motion:reduce){nav#sidebar ul li ul li:hover{transition:none}}nav#sidebar ul li ul li a:focus,nav#sidebar ul li ul li a:hover{border-left:2px solid var(--sidebar-link-border-color)}nav#sidebar ul li ul li.highlight a{border-left:2px solid #3178c6;color:#2866a9;font-weight:500;margin-left:.5rem;margin-right:-.5rem}@media(min-width:800px){nav#sidebar>ul{max-height:calc(100vh - 10px);overflow-x:hidden;overflow-y:auto}}@media(max-width:800px){button#small-device-button-sidebar{-webkit-appearance:none;background-color:#c4c4c4;border:none;border-radius:6px;bottom:120px;display:flex;left:20px;margin-bottom:env(safe-area-inset-bottom);padding:10px;position:fixed;transition-timing-function:ease;transition:left .3s;z-index:100}}@media(max-width:800px)and (prefers-reduced-motion:reduce){button#small-device-button-sidebar{transition:none}}@media(max-width:800px){button#small-device-button-sidebar.hidden{left:-80px}button#small-device-button-sidebar:active{background-color:#575757}nav#sidebar{-webkit-overflow-scrolling:touch;height:100%;margin-left:-800px;overflow-x:hidden;overflow-y:scroll;position:fixed;transition-timing-function:ease;transition:margin-left .3s;width:90%;z-index:99}nav#sidebar ul{padding-bottom:200px}}@media(max-width:800px)and (prefers-reduced-motion:reduce){nav#sidebar{transition:none}}@media(max-width:800px){nav#sidebar.show{margin-left:0}nav#sidebar>ul>li,nav#sidebar>ul>li>button{font-size:1.3rem}}#site-footer{background-color:#3178c6;color:#fff;padding-bottom:3rem;padding-top:1rem}@media(max-width:800px){#site-footer{padding-bottom:9rem}}#site-footer a{color:#fff}#site-footer section{margin:0 auto;max-width:1040px;padding-left:.5rem;padding-right:.5rem;padding-top:1rem}#site-footer h3{font-size:20px;font-style:normal;font-weight:600;margin-top:1px}#site-footer ul{display:flex;flex-wrap:wrap;padding:0}#site-footer ul li{font-weight:600;list-style:none;width:13rem}#site-footer ul li a{font-size:16px}#site-footer ul li p{font-size:14px;margin-top:2px;width:74%}#site-footer ul li span.link-prefix{left:-30px;position:absolute;text-align:right;width:26px}@media(max-width:800px){#site-footer ul li{margin-left:10px}#site-footer ul li p{width:100%}}#site-footer section#customize{border-bottom:1px solid hsla(0,0%,100%,.3);padding-top:2px}#site-footer section#customize article{display:flex;flex-direction:row}#site-footer section#customize article h3{width:240px}@media(max-width:800px){#site-footer section#customize article{flex-direction:column;margin-bottom:1rem}#site-footer section#customize article label{margin-left:8px}}#site-footer section#customize article label{display:flex;flex-direction:row}#site-footer section#customize article label p{margin:6px 8px 0 0;padding:0}#site-footer section#customize .switch-wrap{display:inline-block;height:20px;margin-right:1rem;padding:5px}#site-footer section#customize .switch-wrap select{background-color:#00273f;color:#fff}#site-footer section#community{border-top:1px solid hsla(0,0%,100%,.3);display:flex;padding-top:2rem}@media(max-width:800px){#site-footer section#community{flex-direction:column-reverse}#site-footer section#community article#logos{margin:3rem auto 0;text-align:center}}#site-footer section#community article>ul{display:flex;flex-wrap:wrap}#site-footer section#community article>ul>li{margin-bottom:.8rem;word-break:break-all}@media(min-width:800px){#site-footer section#community article>ul>li{width:50%}}#site-footer section#community #logos{margin-right:40px;width:200px}#site-footer section#community #logos svg{margin-bottom:-.8rem}@media screen and (-ms-high-contrast:black-on-white){#site-footer section#community #logos img{filter:invert(100%)}#site-footer section#community #logos svg path{fill:#000}}#site-footer section#community #logos svg.typescript-long{margin-left:8px;position:relative;top:2px}#site-footer section#community #logos img#microsoft-logo{margin-bottom:-.8rem;margin-top:1rem}#site-footer section#community #community-links,#site-footer section#community #using-typescript{flex:1 1}@media(max-width:800px){#playground-samples-popover{display:none}#community-links ul,#using-typescript ul{margin-left:12px}}.popover-container{position:relative}.popover-container .examples{overflow-y:auto}.popover-container .examples>div.section-content .section-list{width:300px}.popover-container.allow-hover #playground-samples-popover{bottom:-10px;opacity:0}.popover-container.allow-hover:hover #playground-samples-popover{bottom:-5px;opacity:1;visibility:visible}.popover-container.allow-hover:hover .footer-icon:after{content:"▼"}.popover-container .footer-icon:after{content:"⊙"}#playground-samples-popover{bottom:0;color:#000;left:-252px;margin:0 auto;opacity:1;position:absolute;right:-320px;transition:bottom .3s ease,opacity .2s linear,visibility 0s linear;visibility:hidden;z-index:123}#playground-samples-popover .section-content{display:flex}#playground-samples-popover .section-content .section-list li{margin-top:4px}#playground-samples-popover .section-content .example-indicator{margin-top:0}#playground-samples-popover .arrow-down{border-left:10px solid transparent;border-right:10px solid transparent;border-top:14px solid var(--footer-arrow-color);height:0;margin:0 auto 20px;position:relative;right:179px;width:0}#playground-samples-popover .navbar-sub{border-bottom:1px solid #235a97;border-radius:0}#playground-samples-popover .navbar-sub div.info{color:#000;padding:20px;width:320px}#playground-samples-popover a{color:#3178c6;text-decoration:none}@font-face{font-display:swap;font-family:Cascadia Mono-SemiLight;font-style:normal;font-weight:400;src:url(/fonts/CascadiaMono-SemiLight.woff2) format("woff2")}@font-face{font-display:swap;font-family:Cascadia Code-SemiLight;font-style:normal;font-weight:400;src:url(/fonts/CascadiaCode-SemiLight.woff2) format("woff2")}@font-face{font-display:swap;font-family:JetBrains Mono-Regular;font-style:normal;font-weight:400;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:FiraCode-Regular;font-style:normal;font-weight:400;src:url(/fonts/FiraCode-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Dank Mono Regular;font-style:normal;font-weight:400;src:url(/fonts/DankMono-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:SourceCode Pro Regular;font-style:normal;font-weight:400;src:url(/fonts/SourceCodePro-Regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:OpenDyslexicMono Regular;font-style:normal;font-weight:400;src:url(/fonts/OpenDyslexicMono-Regular.woff) format("woff")}@font-face{font-display:swap;font-family:OpenDyslexic Regular;font-style:normal;font-weight:400;src:url(/fonts/OpenDyslexic-Regular.woff) format("woff")}@font-face{font-display:swap;font-family:Leelawadee UI Web;font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:Leelawadee UI Web;font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:Leelawadee UI Web;font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:Leelawadee UI Web;font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:Leelawadee UI Web;font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/leelawadeeui-thai/leelawadeeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Arabic)";font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-light.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-light.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Arabic)";font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Arabic)";font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Arabic)";font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-semibold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-semibold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Arabic)";font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-arabic/segoeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Cyrillic)";font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-light.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-light.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Cyrillic)";font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Cyrillic)";font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Cyrillic)";font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-semibold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Cyrillic)";font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-cyrillic/segoeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (East European)";font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-light.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-light.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (East European)";font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (East European)";font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (East European)";font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-semibold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (East European)";font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-easteuropean/segoeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Greek)";font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-light.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-light.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Greek)";font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Greek)";font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Greek)";font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-semibold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-semibold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Greek)";font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-greek/segoeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Hebrew)";font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-light.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-light.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Hebrew)";font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Hebrew)";font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Hebrew)";font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-semibold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-semibold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Hebrew)";font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-hebrew/segoeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Vietnamese)";font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-light.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-light.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Vietnamese)";font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Vietnamese)";font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Vietnamese)";font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-semibold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (Vietnamese)";font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-vietnamese/segoeui-bold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (West European)";font-style:normal;font-weight:100;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-light.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-light.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (West European)";font-style:normal;font-weight:300;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-semilight.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (West European)";font-style:normal;font-weight:400;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-regular.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-regular.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (West European)";font-style:normal;font-weight:600;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-semibold.woff) format("woff")}@font-face{font-display:swap;font-family:"Segoe UI Web (West European)";font-style:normal;font-weight:700;src:url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-bold.woff2) format("woff2"),url(https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets/fonts/segoeui-westeuropean/segoeui-bold.woff) format("woff")}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}body button,body input,body textarea{font-family:inherit}[lang^=ar] body,body [lang^=ar],body[lang^=ar]{font-family:"Segoe UI Web (Arabic)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=bg] body,body [lang^=bg],body[lang^=bg]{font-family:"Segoe UI Web (Cyrillic)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=cs] body,body [lang^=cs],body[lang^=cs]{font-family:"Segoe UI Web (East European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=el] body,body [lang^=el],body[lang^=el]{font-family:"Segoe UI Web (Greek)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=et] body,body [lang^=et],body[lang^=et]{font-family:"Segoe UI Web (East European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=he] body,body [lang^=he],body[lang^=he]{font-family:"Segoe UI Web (Hebrew)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=hi] body,body [lang^=hi],body[lang^=hi]{font-family:Nirmala UI,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=hr] body,[lang^=hu] body,body [lang^=hr],body [lang^=hu],body[lang^=hr],body[lang^=hu]{font-family:"Segoe UI Web (East European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=ja] body,body [lang^=ja],body[lang^=ja]{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Meiryo,Hiragino Sans,Source Han Sans,Noto Sans CJK JP,sans-serif}[lang^=kk] body,body [lang^=kk],body[lang^=kk]{font-family:"Segoe UI Web (East European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=ko] body,body [lang^=ko],body[lang^=ko]{font-family:Malgun Gothic,Gulim,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=lo] body,body [lang^=lo],body[lang^=lo]{font-family:Leelawadee UI Web,Lao UI,DokChampa,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=lt] body,[lang^=lv] body,[lang^=pl] body,body [lang^=lt],body [lang^=lv],body [lang^=pl],body[lang^=lt],body[lang^=lv],body[lang^=pl]{font-family:"Segoe UI Web (East European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=ru] body,body [lang^=ru],body[lang^=ru]{font-family:"Segoe UI Web (Cyrillic)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=sk] body,[lang^=sr-latn] body,body [lang^=sk],body [lang^=sr-latn],body[lang^=sk],body[lang^=sr-latn]{font-family:"Segoe UI Web (East European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=th] body,body [lang^=th],body[lang^=th]{font-family:Leelawadee UI Web,Kmer UI,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=tr] body,body [lang^=tr],body[lang^=tr]{font-family:"Segoe UI Web (East European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=uk] body,body [lang^=uk],body[lang^=uk]{font-family:"Segoe UI Web (Cyrillic)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=vi] body,body [lang^=vi],body[lang^=vi]{font-family:"Segoe UI Web (Vietnamese)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=zh-hans] body,body [lang^=zh-hans],body[lang^=zh-hans]{font-family:Microsoft Yahei UI,Verdana,Simsun,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}[lang^=zh-hant] body,body [lang^=zh-hant],body[lang^=zh-hant]{font-family:Microsoft Jhenghei UI,Pmingliu,Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}.dark-theme{--background-color:#262626;--text-color:#fff;--border-color:#444;--background-minor-highlight-color:#343434;--inline-code-background-color:rgba(58,58,92,.7);--link-color:#719af4;--pure-background:#000;--raised-background-color:#313131;--alt-text-color:#fff;--raised-box-shadow:0 1.6px 3.6px 0 hsla(0,0%,100%,.132),0 0.3px 0.9px 0 hsla(0,0%,100%,.108);--sidebar-background-color:#2a2a2b;--sidebar-list-active-background-color:#28323a;--sidebar-list-background-color:#353434;--sidebar-link-border-color:#fff;--sidebar-item-border-color:#3e3e3e;--sidebar-active-button-background-color:#4e4e4f;--playground-divider:#f2f2f2;--playground-dropdown-bg:#313131;--playground-dropdown-shadow:0 6px 12px hsla(0,0%,58%,.175);--playground-dropdown-border:#000;--playground-toolbar-hover-bg:#262626;--playground-dragbar-bg:#28323a;--playground-dragbar-border:#fff;--playground-pre-color:#fff;--table-border-color:#545454;--playground-pre-bg:#1e1e1e;--blue-tinged-bg:#2c3841;--blue-tinged-strong:#273f52;--footer-arrow-color:$ts-light-bg-grey-highlight-color;--fade-gradient:linear-gradient(0deg,#313131,rgba(49,49,49,.2))}html,html.light-theme{--background-color:#faf9f8;--pure-background:#fff;--text-color:#333;--border-color:#eee;--background-minor-highlight-color:#fcfcfc;--inline-code-background-color:#f1f1fe;--link-color:#235a97;--raised-background-color:#fff;--alt-text-color:#000;--raised-box-shadow:0 1.6px 3.6px 0 rgba(0,0,0,.132),0 0.3px 0.9px 0 rgba(0,0,0,.108);--sidebar-background-color:#eee;--sidebar-list-active-background-color:#e3e8ec;--sidebar-list-background-color:#e4e4e4;--sidebar-link-border-color:#000;--sidebar-item-border-color:#dfdfdf;--sidebar-active-button-background-color:#dfdfdf;--playground-divider:#4e4e4f;--playground-dropdown-bg:#fff;--playground-dropdown-shadow:0 6px 12px rgba(0,0,0,.175);--playground-dropdown-border:#f2f2f2;--playground-toolbar-hover-bg:#f2f2f2;--playground-dragbar-bg:#fff;--playground-dragbar-border:#c4c4c4;--playground-pre-color:#000;--playground-pre-bg:#f7f7f7;--footer-arrow-color:$ts-dark-bg-for-foreground-color;--table-border-color:#f1f1f1;--blue-tinged-bg:#e6f2fb;--blue-tinged-strong:#cce4f6;--fade-gradient:linear-gradient(0deg,#fff,hsla(0,0%,100%,.2));-webkit-font-smoothing:antialiased;background-color:var(--background-color);color:var(--text-color);font-family:var(--body-font);font-size:16px;line-height:1.4}html{--code-font:"Cascadia Mono-SemiLight",Menlo,Monaco,Consolas,monospace;--body-font:"Segoe UI Web (West European)","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",sans-serif}html.font-cascadia-ligatures{--code-font:"Cascadia Code-SemiLight",Menlo,Monaco,Consolas,monospace}html.font-consolas{--code-font:Consolas,monospace}html.font-dank-mono{--code-font:"Dank Mono Regular",Menlo,Monaco,Consolas,monospace}html.font-jetbrains-mono{--code-font:"JetBrains Mono-Regular",Menlo,Monaco,Consolas,monospace}html.font-fira-code{--code-font:"FiraCode-Regular",Menlo,Monaco,Consolas,monospace}html.font-sf-mono{--code-font:"SF Mono",Menlo,Monaco,Consolas,monospace}html.font-source-code-pro{--code-font:"SourceCode Pro Regular",Menlo,Monaco,Consolas,monospace}html.font-open-dyslexic{--code-font:"OpenDyslexicMono Regular",Menlo,Monaco,Consolas,monospace;--body-font:"OpenDyslexic Regular","Segoe UI Web (West European)","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",sans-serif}.raised{background-color:var(--raised-background-color);box-shadow:var(--raised-box-shadow);color:var(--alt-text-color)}.raised a{color:var(--link-color)}.raised h1,.raised h2,.raised h3{line-height:normal;margin-bottom:1.5rem;margin-top:2rem}.raised li,.raised p{line-height:1.4rem}.raised ul{padding-left:10px}.raised ul li{margin-bottom:10px;margin-left:10px}.raised h1>code,.raised h2>code,.raised h3>code{background-color:var(--inline-code-background-color);font-size:.95em;margin-left:.2em;margin-right:.2em;padding:2px 4px}.raised li>code,.raised p>code{background-color:var(--inline-code-background-color);font-family:var(--code-font);font-size:.9rem;padding:2px 4px}.raised td{padding:4px}.dark-theme .raised .markdown .anchor.before svg path{fill:#fff}h2,h3{font-weight:400}.main-content-block{margin:1rem auto;max-width:960px;padding:.4rem 2rem 2rem}.main-content-block.headline{max-width:calc(960px + 4rem)}body{margin:0}#___gatsby,body,html{height:100%}#site-wrapper{display:flex;flex-direction:column}.dark-theme{color-scheme:dark} /*! mscc v0.4.2 - Copyright 2020 Microsoft Corporation */.cc-banner{font-size:12px;position:relative}.cc-banner .hide{display:none}.cc-banner a,.cc-banner div,.cc-banner span,.cc-banner svg{margin:0;padding:0;text-decoration:none}.cc-banner .cc-v-center{display:inline;line-height:2em;vertical-align:middle}.cc-banner[dir=rtl] .cc-float-left,.cc-float-right{float:right}.cc-banner[dir=rtl] .cc-float-right,.cc-float-left{float:left}.cc-banner{background:#f2f2f2;color:#231f20;display:none;font-family:Segoe UI,Helvetica Neue,Helvetica,Arial,sans-serif;margin:0;padding:0 1em;text-align:center}@media(min-width:768px){.cc-banner{font-size:13px;padding:0 1.65em}}.cc-banner>.cc-container{display:inline-block;padding:.75em 0;text-align:left;width:100%}[dir=rtl].cc-banner>.cc-container{text-align:right}@media(min-width:1084px){.cc-banner{padding:0}.cc-banner>.cc-container{max-width:1600px;width:90%}}.cc-banner.active{display:block}.cc-banner .cc-icon{height:1.846em;width:1.846em}.cc-banner .cc-text{margin-left:.5em;margin-right:1.5em}[dir=rtl].cc-banner .cc-text{margin-left:1.5em;margin-right:.5em}.cc-banner .cc-link{color:#0067b8;text-decoration:none}.cc-banner .cc-link:focus,.cc-banner .cc-link:hover{text-decoration:underline}.cc-banner .cc-link:focus{background:content-box rgba(0,120,215,.1);outline:0}@media screen and (-ms-high-contrast:active){.cc-banner{border-bottom:1px solid}}#branding>h1,#branding>h2{font-weight:400;text-align:center}#branding>h1{font-size:3rem;margin-bottom:0;margin-top:5rem}#branding>h2{font-size:1.5rem;margin-bottom:2rem;margin-top:6rem}#branding>h2.subnav{margin-top:0}#branding .headline{padding:2rem}#branding .headline,#branding .subheadline{align-items:center;display:flex;justify-content:center}#branding .subheadline{flex-direction:column;max-width:400px;padding-bottom:5rem;position:relative}#branding .subheadline p.attached-bottom{border-top:1px solid #d3d3d3;bottom:0;height:2.8rem;left:0;padding:1rem;position:absolute;right:0;text-align:left}#branding .recommendations p{margin-top:0;padding:0 1rem 1rem}.navbar-sub{clear:both;display:flex;height:3rem;justify-content:space-between;position:relative}.navbar-sub>ul{display:flex;margin:0;padding:0}.navbar-sub li.name{font-size:1.2rem;font-weight:600;width:200px}.navbar-sub li.name span{padding-left:1rem;padding-top:.7rem}.navbar-sub li{display:flex;font-size:1rem;font-weight:600;list-style:none}.navbar-sub li.divider{background-color:var(--playground-divider);height:1px;margin:9px 0;overflow:hidden}.navbar-sub li .example-indicator{top:1.25em!important}.navbar-sub li a{color:var(--text-color);display:block;padding:.95rem .75rem .5rem .7rem;text-decoration:none}.navbar-sub li.dropdown.open .dropdown-dialog,.navbar-sub li.dropdown.open ul{display:block}.navbar-sub li.dropdown .dropdown-dialog,.navbar-sub li.dropdown ul{display:none;float:left;left:0;position:absolute;top:100%;z-index:5}.navbar-sub li.dropdown ul.dropdown-menu{-webkit-background-clip:padding-box;background-clip:padding-box;background-color:var(--playground-dropdown-bg);border:1px solid var(--playground-dropdown-border);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);font-size:14px;list-style:none;margin:2px 0 0;max-height:calc(100vh - 150px);min-width:300px;overflow-y:auto;padding:5px 0;text-align:left;z-index:99}.navbar-sub li.dropdown ul.dropdown-menu.versions{min-width:5rem}.navbar-sub li.dropdown ul.dropdown-menu.versions li{margin-bottom:0;margin-left:0}.navbar-sub li.dropdown ul.dropdown-menu.versions li.beta{border-bottom:1px solid #f2f2f2;color:#3178c6}.navbar-sub li.dropdown ul.dropdown-menu.versions li.nightly{border-top:1px solid #f2f2f2}.navbar-sub li.dropdown ul.dropdown-menu.versions a{margin:0;padding:10px;text-align:center}.navbar-sub li.dropdown ul.dropdown-menu a{display:block;width:100%}.navbar-sub li.dropdown ul.dropdown-menu li:hover{background-color:#f5f5f5;color:#262626;text-decoration:none}.navbar-sub li.dropdown .dropdown-dialog{overflow-y:scroll;padding:2rem;width:800px}.navbar-sub li.dropdown .dropdown-dialog h3{font-size:2em;font-weight:600;height:2em;margin:0}.navbar-sub li.dropdown .dropdown-dialog a{color:var(--link-color);padding-bottom:.2rem;padding-left:0}.navbar-sub li.dropdown .dropdown-dialog #config-container p{margin:0 0 8px 4px}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container{display:flex;flex-wrap:wrap}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div{max-width:400px;min-width:200px}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div ol{margin:0;padding:0}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div li{margin-bottom:.5rem}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div input{margin-top:.4rem}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div label{font-weight:400}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div label:hover a.compiler_info_link{display:block}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div label a.compiler_info_link{display:none;padding:0;position:absolute;right:10px;text-align:center;top:0}.navbar-sub li.dropdown .dropdown-dialog #config-container #boolean-options-container>div label>span{font-family:var(--code-font);margin-left:4px}.navbar-sub li.dropdown .dropdown-dialog #compiler-dropdowns{display:flex;margin:1.5rem 0}.navbar-sub li.dropdown .dropdown-dialog #compiler-dropdowns label{font-family:var(--code-font);margin-right:.5rem;width:33%}.navbar-sub li.dropdown .dropdown-dialog #compiler-dropdowns label select{margin-left:1rem}.navbar-sub li.dropdown .dropdown-dialog #compiler-dropdowns label span.compiler-flag-blurb{display:block;font-family:var(--body-font);font-weight:400}main>nav{position:relative}main>nav .dropdown-dialog{background-color:var(--playground-dropdown-bg);padding-left:0}main>nav>ul li.disabled{opacity:.5}main>nav>ul li.active.open,main>nav>ul li.active:hover{background-color:var(--playground-dropdown-bg)}main>nav>ul li.active.open .caret{transform:scaleY(-1)}main>nav>ul li.active.name:hover{background-color:transparent}main>nav .examples{box-shadow:none;height:auto}button.examples-close{position:absolute;right:20px;top:20px}main #editor-toolbar>ul>li{margin-bottom:0;margin-left:0;position:relative}main #editor-toolbar>ul>li>a{padding-top:.8rem}@media(prefers-color-scheme:dark){main #editor-toolbar>ul>li>a:hover{border-bottom:1px solid #fff}}main #editor-toolbar>ul>li .dropdown-menu{left:4px}main #editor-toolbar li:hover{background-color:var(--playground-toolbar-hover-bg)}.caret{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid;display:inline-block;height:0;margin-left:2px;vertical-align:middle;width:0}#editor-toolbar>ul>li>a:first-child{padding-left:1rem}#playground-container{display:flex;height:800px}#playground-container ol{padding:0}#playground-container #navigation-container{background-color:var(--blue-tinged-bg);overflow-y:auto}#playground-container #navigation-container h4{margin-left:12px;margin-top:12px}#playground-container #navigation-container ul{padding:0}#playground-container #navigation-container ul li{border-radius:0 3px 3px 0;cursor:pointer;font-size:14px;font-weight:600;height:22px;line-height:22px;list-style:none;margin:0;overflow:hidden;padding-left:12px;text-overflow:ellipsis;white-space:nowrap}#playground-container #navigation-container ul li a{display:block;text-decoration:none}#playground-container #navigation-container ul li a svg{margin-right:8px}#playground-container #navigation-container ul li.selectable:hover{background-color:hsla(0,0%,100%,.314)}#playground-container #navigation-container ul li.selectable.selected{background-color:var(--blue-tinged-strong)}#playground-container #navigation-container ul li.selectable.selected a{color:var(--text-color)}#playground-container #navigation-container ul li.selectable.selected path{stroke:var(--text-color)}#playground-container #navigation-container ul li hr{margin-left:0;margin-top:10px;width:60px}#playground-container #story-container{font-size:.9rem;overflow-y:auto;padding:0 20px 20px}#playground-container #story-container .highlight pre{background-color:#f7f7f7;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}#playground-container #story-container details[open]{border-left:2px solid var(--blue-tinged-strong);padding-left:1rem}#playground-container #story-container details[open] summary{margin-left:-.5rem}#playground-container #story-container summary:hover{background-color:var(--background-minor-highlight-color);cursor:pointer}#playground-container #story-container kbd{background-color:#f7f7f7;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.2),inset 0 0 0 2px #fff;color:#333;display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.4;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff}#playground-container #story-container .highlight{font-size:14px;margin-bottom:16px}#playground-container #story-container .pl-c{color:#969896}#playground-container #story-container .pl-c1,#playground-container #story-container .pl-s .pl-v{color:#0086b3}#playground-container #story-container .pl-e,#playground-container #story-container .pl-en{color:#795da3}#playground-container #story-container .pl-s .pl-s1,#playground-container #story-container .pl-smi{color:#333}#playground-container #story-container .pl-ent{color:#63a35c}#playground-container #story-container .pl-k{color:#a71d5d}#playground-container #story-container .pl-pds,#playground-container #story-container .pl-s,#playground-container #story-container .pl-s .pl-pse .pl-s1,#playground-container #story-container .pl-sr,#playground-container #story-container .pl-sr .pl-cce,#playground-container #story-container .pl-sr .pl-sra,#playground-container #story-container .pl-sr .pl-sre{color:#183691}#playground-container #story-container .pl-v{color:#ed6a43}#playground-container #story-container .pl-id{color:#b52a1d}#playground-container #story-container .pl-ii{background-color:#b52a1d;color:#f8f8f8}#playground-container #story-container .pl-sr .pl-cce{color:#63a35c;font-weight:700}#playground-container #story-container .pl-ml{color:#693a17}#playground-container #story-container .pl-mh,#playground-container #story-container .pl-mh .pl-en,#playground-container #story-container .pl-ms{color:#1d3e81;font-weight:700}#playground-container #story-container .pl-mq{color:teal}#playground-container #story-container .pl-mi{color:#333;font-style:italic}#playground-container #story-container .pl-mb{color:#333;font-weight:700}#playground-container #story-container .pl-md{background-color:#ffecec;color:#bd2c00}#playground-container #story-container .pl-mi1{background-color:#eaffea;color:#55a532}#playground-container #story-container .pl-mdr{color:#795da3;font-weight:700}#playground-container #story-container .pl-mo{color:#1d3e81}#playground-container #editor-container{-webkit-font-smoothing:subpixel-antialiased;background-color:var(--playground-dropdown-bg);display:flex;flex-direction:column;flex-grow:1;position:relative;width:calc(100% - 360px)}#playground-container #editor-container .editor-section{display:flex;flex-direction:column}#playground-container #editor-container #monaco-editor-embed{height:100%}#playground-container #editor-container #editor-toolbar{border-bottom:1px solid #c4c4c4;height:3rem;margin-bottom:10px;margin-right:-2px;position:relative}#playground-container #editor-container #editor-toolbar ul.right{background-color:var(--playground-dropdown-bg);position:relative;right:0}#playground-container .playground-dragbar{background-color:var(--playground-dragbar-bg);border-left:1px solid var(--playground-dragbar-border);cursor:col-resize;margin-left:2px;padding:3px}#playground-container .playground-dragbar.left{background-color:var(--blue-tinged-bg);border-left:none;border-right:1px solid var(--playground-dragbar-border);margin-left:0}#playground-container .playground-dragbar:hover{background-color:var(--blue-tinged-tinged-strong)}#playground-container .playground-dragbar.selected{background-color:var(--blue-tinged-strong)}#playground-container .playground-sidebar{background-color:var(--playground-dropdown-bg);display:flex;flex-basis:320px;flex-direction:column;max-width:320px;overflow-x:hidden;overflow-y:hidden;padding:0 1em 0 .5rem;width:320px;z-index:1}@media(max-width:800px){#playground-container .playground-sidebar{flex-basis:300px;max-width:300px;width:300px}}#playground-container .playground-sidebar .playground-plugin-container{flex:1 1;flex-grow:1;flex-shrink:1;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto;position:relative;width:100%}#playground-container .playground-sidebar .playground-plugin-container #restart-required{border:1px solid #3178c6;display:none;padding:5px 10px;position:absolute;right:0;text-align:center;top:-2px}#playground-container .playground-sidebar .playground-plugin-container pre{background-color:var(--pure-background);border:none;color:var(--text-color);overflow-x:auto;padding:0 10px;width:100%}#playground-container .playground-sidebar .playground-plugin-container pre code{font-family:var(--code-font);font-size:14px;line-height:19px}#playground-container .playground-sidebar .playground-plugin-tabview{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:10px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px}@media(max-width:800px){#playground-container .playground-sidebar .playground-plugin-tabview{justify-content:flex-start}}#playground-container .playground-sidebar .playground-plugin-tabview button{background:none;border:none;color:inherit;cursor:pointer;font-family:var(--body-font);font-size:14px;font-weight:600;margin:14px 2px 5px;padding-top:0;position:relative}#playground-container .playground-sidebar .playground-plugin-tabview button .plugin-tab-notification{background-color:#c63131;border-radius:20px;color:#fff;height:20px;padding:0 4px;position:absolute;right:-10px;text-align:right;top:-8px}#playground-container .playground-sidebar .playground-plugin-tabview button:disabled{opacity:.4}#playground-container .playground-sidebar .playground-plugin-tabview button.active{border-bottom:1px solid var(--link-color)}#playground-container .playground-sidebar .playground-plugin-tabview button:focus{color:var(--link-color)}#playground-container .playground-sidebar .playground-settings-container,#playground-container .playground-sidebar pre{margin:0}.playground-plugin-container #log-tools{align-items:center;border-bottom:1px solid var(--playground-dragbar-border);border-top:1px solid var(--playground-dragbar-border);display:flex;margin-top:1px;padding:3px}.playground-plugin-container #log-tools svg{stroke:var(--text-color);cursor:pointer;padding-right:5px}.playground-plugin-container #log-container{font-family:var(--code-font);height:95%;line-height:1.5rem;overflow:auto;white-space:pre-wrap}.playground-plugin-container #log-container #log{margin-top:1rem}.playground-plugin-container #log-container .log-warn{color:orange}.playground-plugin-container #log-container .log-error{color:red}.playground-plugin-container #log-container .log-info{color:skyblue}.playground-plugin-container #log-container .log-log{color:silver}.playground-plugin-container #log-container .log-error,.playground-plugin-container #log-container .log-warn{font-weight:700}.playground-plugin-container #log-container hr{background:#fff;border:0;border-bottom:1px dashed #ccc}.playground-plugin-container #log-container .comma{color:#777}.playground-plugin-container div.ast{font-family:var(--code-font);font-size:.8rem;line-height:.3rem}.playground-plugin-container div.ast li{list-style-type:none;margin-bottom:4px;margin-left:0;position:relative}.playground-plugin-container div.ast li span.ast-node-number{color:blue}.dark-theme .playground-plugin-container div.ast li span.ast-node-number{color:#87cefa}.playground-plugin-container div.ast li span.ast-node-string{color:green}.dark-theme .playground-plugin-container div.ast li span.ast-node-string{color:#adff2f}.playground-plugin-container div.ast li span.ast-node-boolean{color:red}.dark-theme .playground-plugin-container div.ast li span.ast-node-boolean{color:coral}.playground-plugin-container div.ast li span.ast-node-undefined{color:brown}.dark-theme .playground-plugin-container div.ast li span.ast-node-undefined{color:#f4a460}.playground-plugin-container div.ast .ast-children>div.ast-tree-start{display:block;margin-left:12px;min-height:1rem}.playground-plugin-container div.ast div.ast-tree-start{display:inline-block}.playground-plugin-container div.ast div.ast-tree-start ul.ast-tree{border-left:1px solid #d3d3d3;display:none;margin-left:12px;margin-top:4px;padding-top:0}.playground-plugin-container div.ast div.ast-tree-start.open>a.node-name{top:4px}.playground-plugin-container div.ast div.ast-tree-start a.node-name{color:purple;font-weight:700;margin-left:10px;position:relative;text-decoration:none;top:0}.dark-theme .playground-plugin-container div.ast div.ast-tree-start a.node-name{color:orchid}.playground-plugin-container div.ast div.ast-tree-start a.node-name:hover{cursor:pointer;text-decoration:underline}.playground-plugin-container div.ast div.ast-tree-start a.node-name:before{display:block;height:1em;left:-.8em;padding:0 .1em;position:absolute}.playground-plugin-container div.ast div.ast-tree-start.open,.playground-plugin-container div.ast div.ast-tree-start.open>ul{display:block}.playground-plugin-container div.ast div.ast-tree-start>a:not(:last-child):before{content:"+"}.playground-plugin-container div.ast div.ast-tree-start.open>a:not(:last-child):before{content:"-"}.playground-plugin-container ul.compiler-diagnostics{font-family:var(--code-font);margin:0;padding:0}.playground-plugin-container ul.compiler-diagnostics li.diagnostic{cursor:pointer;font-size:.85rem;list-style:none;margin:0 0 1rem;padding-left:1rem;white-space:pre-wrap}.playground-plugin-container ul.compiler-diagnostics .error{border-left:2px solid red}.playground-plugin-container #empty-message-container{align-items:center;display:flex;flex-direction:column;height:80%;justify-content:center}.playground-plugin-container .playground-options input[type=checkbox]{margin-right:6px}.playground-plugin-container .playground-options.tight li{margin-bottom:.2rem}.playground-plugin-container .playground-options.tight span{margin-right:1rem}.playground-plugin-container .playground-options li{list-style:none;margin-bottom:1rem}.playground-plugin-container .playground-options li span{font-weight:600}.playground-plugin-container .briefly-highlight{animation:highlight 1s ease 1}@keyframes highlight{0%{background-color:#ff0}to{background-color:inherit}}span.right{float:right}.warning{font-size:.8}input[type=text],input[type=url]{font-size:1.1rem;padding:.2rem;width:80%}input.good{border-color:#086f56}#playground-container .playground-plugins{margin:1rem 0}#playground-container .playground-plugins.featured{border:1px solid #d3d3d3}#playground-container .playground-plugins.featured li{border-bottom:1px solid #d3d3d3}#playground-container .playground-plugins li{padding:10px 0}#playground-container .playground-plugins li div{display:flex;flex-direction:row;position:relative}#playground-container .playground-plugins input{display:block;height:100%;margin:0 8px;position:absolute}#playground-container .playground-plugins label{padding-left:30px;padding-right:10px}#playground-container .playground-plugins label span{font-weight:600}.custom-modules li a{border:1px solid #000;display:inline-block;height:1rem;line-height:1rem;text-align:center;text-decoration:none;width:1rem}.custom-modules li a:hover{background-color:#fcb7b7;color:red}.highlight-error{background-color:#fcb7b7}.highlight-info{background-color:#d3d3d3}.underscore-neutral{border-bottom:1px solid green}#popover-background{background-color:rgba(0,0,0,.75);height:100%;left:0;position:fixed;top:0;width:100%;z-index:100}#popover-modal{background-color:#fff;color:#000;display:flex;flex-direction:column;height:70%;left:50%;padding:20px;position:fixed;top:50%;transform:translate(-50%,-50%);width:80%;z-index:101}#popover-modal.smaller{height:40%;min-width:320px;padding:0;width:40%}#popover-modal textarea{font-family:var(--code-font);padding:8px}#popover-modal .close{position:absolute;right:20px;top:20px}#popover-modal pre{max-height:90%;overflow:auto}#popover-modal .window-title{background-color:#eee;font-size:32px;text-align:center}#popover-modal .window-title.warning{background:repeating-linear-gradient(45deg,#d63131,#d63131 10px,#c63131 0,#c63131 20px);color:#fff}#loader{align-items:center;display:flex;flex-direction:column;justify-content:center;padding-bottom:200px;padding-top:200px}#loader p{text-align:center}#loader .lds-grid{display:inline-block;height:80px;position:relative;width:80px}#loader .lds-grid div{animation:lds-grid 1.2s linear infinite;background:#3178c6;border-radius:50%;height:16px;position:absolute;width:16px}#loader .lds-grid div:first-child{animation-delay:0s;left:8px;top:8px}#loader .lds-grid div:nth-child(2){animation-delay:-.4s;left:32px;top:8px}#loader .lds-grid div:nth-child(3){animation-delay:-.8s;left:56px;top:8px}#loader .lds-grid div:nth-child(4){animation-delay:-.4s;left:8px;top:32px}#loader .lds-grid div:nth-child(5){animation-delay:-.8s;left:32px;top:32px}#loader .lds-grid div:nth-child(6){animation-delay:-1.2s;left:56px;top:32px}#loader .lds-grid div:nth-child(7){animation-delay:-.8s;left:8px;top:56px}#loader .lds-grid div:nth-child(8){animation-delay:-1.2s;left:32px;top:56px}#loader .lds-grid div:nth-child(9){animation-delay:-1.6s;left:56px;top:56px}@keyframes lds-grid{0%,to{opacity:1}50%{opacity:.5}}#flash-bg{align-items:center;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:42}#flash-bg p{background-color:rgba(0,0,0,.8);border-radius:1em;color:#fff;font-size:1.5rem;padding:.5em 1.5em;transform:translateZ(0);transition:opacity .1s ease-in-out}.monaco-list{background-color:var(--background-color)}#dev .navbar-sub .active{text-decoration:underline}#dev .content{display:flex}@media(max-width:800px){#dev .content{flex-direction:column}}#dev pre{background-color:#f9f9f9;margin-right:0;overflow-x:scroll}#dev pre,#dev pre .mtk5{color:#000}#dev .split-fifty{display:flex;flex-direction:row;width:100%}@media(max-width:800px){#dev .split-fifty{flex-direction:column}}#dev .split-fifty>div,#dev .split-fifty>p{flex:1 1}#dev .split-fivehundred{width:calc(100% - 500px)}@media(max-width:900px){#dev .split-fivehundred{width:100%}}#dev .fivehundred{margin-left:20px;width:500px}@media(max-width:900px){#dev .fivehundred{margin-left:0;padding-left:20px;text-align:center;width:100%}}#dev .split-code{display:flex}#dev .split-code>p{flex:1 1;padding-right:1rem;width:30%}#dev .split-code>pre{flex:3 1;overflow-x:scroll}#dev #example-buttons div.button{background-color:#faf9f8;color:#000;cursor:pointer;display:inline-block;margin:10px;padding:8px 12px;text-decoration:none}#dev #example-buttons div.button:active,#dev #example-buttons div.button:hover{background-color:#dfdfdf}#dev #twoslash-failure{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:hsla(0,0%,100%,.5);bottom:0;left:0;padding:10px;position:absolute;right:0;top:0}#dev #twoslash-failure .err-content{border:2px solid #c63131;padding:20px}#dev #twoslash-failure .err-content p{font-family:Menlo,Monaco,Consolas,Courier New,monospace;white-space:pre-wrap}.cheatsheets .row{justify-content:center;margin-bottom:2rem}.cheatsheets .row p{flex:1 1;margin:10px;max-width:320px}.cheatsheets .sheet-container{align-items:center;display:flex;flex-wrap:wrap;justify-content:center}.cheatsheets .sheet{position:relative}.cheatsheets .sheet img{border:1px solid #000;box-shadow:0 4px 20px -6px rgba(0,0,0,.25);max-width:360px;transition:all .15s ease}.cheatsheets .sheet:active,.cheatsheets .sheet:hover{z-index:100}.cheatsheets .sheet:active img,.cheatsheets .sheet:hover img{border-color:#3178c6;box-shadow:0 4px 20px -2px rgba(0,0,0,.25);margin:-2px;z-index:100}.cheatsheets .sheet:active .description,.cheatsheets .sheet:hover .description{display:block}.cheatsheets .sheet.cs-1{transform:rotate(-1.1deg)}.cheatsheets .sheet.cs-2{transform:rotate(1.2deg)}.cheatsheets .sheet.cs-3{margin-top:-40px;transform:rotate(3deg)}.cheatsheets .sheet.cs-4{margin-top:-40px;transform:rotate(-2deg)}.cheatsheets .sheet .description{background-color:rgba(0,0,0,.5);box-sizing:border-box;color:#fff;display:none;font-size:2.5rem;height:100%;padding-top:30%;position:absolute;text-align:center;top:0;width:100%}.cheatsheets .fluid-button{border:1px solid #000;color:#000;margin:3rem auto 0;max-width:260px}@media(max-width:800px){.cheatsheets .cs-2{margin-top:-40px}}@media(min-width:768px){.cheatsheets .sheet-container{margin:0;min-height:550px}.cheatsheets .cs-1 .description{padding-top:20%}}@media(min-width:1200px){.cheatsheets .sheet-container{margin:0 -80px;min-height:780px}.cheatsheets .sheet img{max-width:550px}.cheatsheets .cs-1 .description{padding-top:30%}}.community{padding:0}.community.centered{text-align:center}.community.centered h2{margin-top:120px}.community .sidebar{background-color:rgba(204,207,233,.1)}.community .next-steps-container{background-color:#fff}.community .banner-text{margin-top:20px}.community .callouts{display:flex;flex-wrap:wrap;margin:20px 0}.community .callouts .callout{display:flex;line-height:1.4rem;margin-bottom:10px;margin-top:20px;width:48%}@media(max-width:800px){.community .callouts .callout{width:90%}}.community .callouts h3{font-size:1rem;margin:0 0 10px;padding:0}.community .callouts .icon{background-position:50%;background-repeat:no-repeat;background-size:auto 3.2rem;display:block;height:5rem;margin:0 20px 20px;min-width:5rem;transition:background-color .2s ease-out;width:5rem}@media screen and (-ms-high-contrast:active){.community .callouts .icon{-ms-high-contrast-adjust:none}}.community .callouts .icon.high-contrast-only{font-size:1.8rem}.community .callouts .icon.img-circle{border-radius:50%}.community .callouts .icon.discord{background-color:#7289da;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGlkPSJwcmVmaXhfX0xheWVyXzEiIHZpZXdCb3g9IjAgMCAyNDUgMjQwIj48cGF0aCBkPSJNMTA0LjQgMTAzLjljLTUuNyAwLTEwLjIgNS0xMC4yIDExLjFzNC42IDExLjEgMTAuMiAxMS4xYzUuNyAwIDEwLjItNSAxMC4yLTExLjEuMS02LjEtNC41LTExLjEtMTAuMi0xMS4xem0zNi41IDBjLTUuNyAwLTEwLjIgNS0xMC4yIDExLjFzNC42IDExLjEgMTAuMiAxMS4xYzUuNyAwIDEwLjItNSAxMC4yLTExLjFzLTQuNS0xMS4xLTEwLjItMTEuMXoiIGNsYXNzPSJwcmVmaXhfX3N0MCIvPjxwYXRoIGQ9Ik0xODkuNSAyMGgtMTM0QzQ0LjIgMjAgMzUgMjkuMiAzNSA0MC42djEzNS4yYzAgMTEuNCA5LjIgMjAuNiAyMC41IDIwLjZoMTEzLjRsLTUuMy0xOC41IDEyLjggMTEuOSAxMi4xIDExLjIgMjEuNSAxOVY0MC42YzAtMTEuNC05LjItMjAuNi0yMC41LTIwLjZ6bS0zOC42IDEzMC42cy0zLjYtNC4zLTYuNi04LjFjMTMuMS0zLjcgMTguMS0xMS45IDE4LjEtMTEuOS00LjEgMi43LTggNC42LTExLjUgNS45LTUgMi4xLTkuOCAzLjUtMTQuNSA0LjMtOS42IDEuOC0xOC40IDEuMy0yNS45LS4xLTUuNy0xLjEtMTAuNi0yLjctMTQuNy00LjMtMi4zLS45LTQuOC0yLTcuMy0zLjQtLjMtLjItLjYtLjMtLjktLjUtLjItLjEtLjMtLjItLjQtLjMtMS44LTEtMi44LTEuNy0yLjgtMS43czQuOCA4IDE3LjUgMTEuOGMtMyAzLjgtNi43IDguMy02LjcgOC4zLTIyLjEtLjctMzAuNS0xNS4yLTMwLjUtMTUuMiAwLTMyLjIgMTQuNC01OC4zIDE0LjQtNTguMyAxNC40LTEwLjggMjguMS0xMC41IDI4LjEtMTAuNWwxIDEuMmMtMTggNS4yLTI2LjMgMTMuMS0yNi4zIDEzLjFzMi4yLTEuMiA1LjktMi45YzEwLjctNC43IDE5LjItNiAyMi43LTYuMy42LS4xIDEuMS0uMiAxLjctLjIgNi4xLS44IDEzLTEgMjAuMi0uMiA5LjUgMS4xIDE5LjcgMy45IDMwLjEgOS42IDAgMC03LjktNy41LTI0LjktMTIuN2wxLjQtMS42czEzLjctLjMgMjguMSAxMC41YzAgMCAxNC40IDI2LjEgMTQuNCA1OC4zIDAgMC04LjUgMTQuNS0zMC42IDE1LjJ6IiBjbGFzcz0icHJlZml4X19zdDAiLz48L3N2Zz4=)}.community .callouts .icon.stackoverflow{background-color:#5016d9;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE0IDU1VjM1LjhoMy41bC0uMSAxNS40aDIzVjM1LjlINDRWNTVIMTR6bTUuNi0xMC4xaDE4djMuOGgtMTh2LTMuOHptLjEtM0wyMCAzOGwxOC4xIDEuNy0uNCAzLjktMTgtMS43em0uOS03LjkgMS4xLTMuOCAxNy41IDQuOS0xLjEgMy44TDIwLjYgMzR6bTMuMy05LjMgMi0zLjQgMTUuNSA5LjQtMi4xIDMuNC0xNS40LTkuNHptNy43LTkuNCAzLjItMi4zIDEwLjYgMTQuOC0zLjIgMi4zLTEwLjYtMTQuOHptMTEuNi01LjdMNDcgOWwzIDE3LjktMy45LjYtMi45LTE3Ljl6Ii8+PC9zdmc+)}.community .callouts .icon.blog{background-color:#d9a216;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI2LjMgMTcuNmMxMS4xIDAgMjAuMSA5IDIwLjEgMjAuMWgtNC4zYzAtNC4yLTEuNi04LjItNC42LTExLjJzLTctNC42LTExLjItNC42di00LjN6bTAtOC42QzQyLjEgOSA1NSAyMS45IDU1IDM3LjhoLTQuM2MwLTMuMy0uNi02LjUtMS45LTkuNS0xLjItMi45LTMtNS41LTUuMi03LjgtMi4yLTIuMi00LjktNC03LjgtNS4yLTMtMS4zLTYuMi0xLjktOS41LTEuOVY5em04LjUgMjAuMmMyIDIgMi45IDQuNSAyLjkgNy4xLTIuOSA0LjMtMi45IDEwLjEtMi45IDEwLjEtMTEuNSAwLTIwLjEgOC42LTIwLjEgOC42bC0uNi0uNi0xLTEgMTIuNy0xMi43aC40YzEuNiAwIDIuOS0xLjMgMi45LTIuOXMtMS4zLTIuOS0yLjktMi45LTIuOSAxLjMtMi45IDIuOXYuNEwxMC43IDUwLjkgOSA0OS4zczguNi04LjYgOC42LTIwLjFjMCAwIDUuNyAwIDEwLjEtMi45IDIuNiAwIDUuMS45IDcuMSAyLjl6Ii8+PC9zdmc+)}.community .callouts .icon.uservoice{background-color:#1a2833;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM0LjkgOUM0NiA5IDU1IDE0LjYgNTUgMjEuNWMwIDQuNC0zLjYgOC4yLTkuMSAxMC40IDEuMiAyLjMgMy4yIDQuNyA1LjMgNy45LTQuMy0xLjUtMTAuNy0yLjktMTQuNC01LjlMMzUgMzRjLTExLjEgMC0yMC4xLTUuNi0yMC4xLTEyLjUtLjItNi45IDguOS0xMi41IDIwLTEyLjV6bTQuOCAyOS43YzAgNS44LTYuOSAxMC41LTE1LjMgMTAuNWgtMS4yYy0zLjEgMi45LTcuNCA1LjgtMTIuMyA1LjggMS4xLTIuMiAzLjUtNC41IDUtNy41LTQuMi0xLjktNi45LTUuMS02LjktOC44IDAtMy43IDIuNy02LjkgNi45LTguOCAzLjYgMy41IDkuOSA1LjggMTcuMSA1LjhsMS44LS4xYzEuNCAxLjEgMyAxLjkgNC45IDIuN3YuNHoiLz48L3N2Zz4=)}.community .callouts .icon.twitter{background-color:#00a0d1;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTU2IDE3LjRjLTEuOC44LTMuNyAxLjMtNS43IDEuNSAyLTEuMiAzLjYtMy4xIDQuMy01LjMtMS45IDEuMS00IDEuOS02LjMgMi4zLTEuOC0xLjktNC40LTMuMS03LjItMy4xLTUuNCAwLTkuOCA0LjMtOS44IDkuNyAwIC44LjEgMS41LjMgMi4yLTguMi0uNC0xNS40LTQuMy0yMC4zLTEwLjEtLjggMS40LTEuMyAzLjEtMS4zIDQuOSAwIDMuNCAxLjcgNi4zIDQuNCA4LTEuNi0uMS0zLjEtLjUtNC41LTEuMnYuMWMwIDQuNyAzLjQgOC42IDcuOSA5LjUtLjguMi0xLjcuMy0yLjYuMy0uNiAwLTEuMy0uMS0xLjktLjIgMS4zIDMuOCA0LjkgNi42IDkuMiA2LjctMy40IDIuNi03LjYgNC4xLTEyLjIgNC4xLS44IDAtMS42IDAtMi4zLS4xIDQuNCAyLjcgOS41IDQuMyAxNS4xIDQuMyAxOC4xIDAgMjgtMTQuNyAyOC0yNy41di0xLjNjMS45LTEuMiAzLjYtMi45IDQuOS00Ljh6Ii8+PC9zdmc+)}.community .callouts .icon.definitelytyped{background-color:#0077d2;background-image:url(data:image/png;base64,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)}.community .callouts .icon.bug{background-color:#4d4d4d;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzlFQkFERkU4NkJCMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzlFQkFERkQ4NkJCMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTJFOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkU1MTc4QTJGOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Kk5lQwAABYxJREFUeNrkm29oVXUYx3+7bM3V1FnbqlltrtXWtYRa1nqxooY5E7EhKWGuaTDBagol9SIMDCKICASj+cISw/DPi16ZBakrUBnoC7nNoTMWy6I1c+LmVq6t78N9jpyu555znt855+536IHPi939/jzP95zznN+/kzc1NaUitirwJJgPasF94DZQDG7hMqNgBFwEZ5kU+AH0R+lcXgQCJMBT4EXwLKgM2N7P4FvwJegCk6YKUA5eB23grogu2C/gc7AN/GGKABTsZtAOZqjc2DjYAT5kUfSNBNCkAGwGo1PTZ6PsQ4FuHLp3QD3YDR5QZtgZsAac1ElYokcGbATHDApesS/kUwf7GEkOKAK7wAvKbNsPXgZjYQowG3wNnlDxsONgCbgchgAU/GHwiIqXUT5o8hLBKwfcDA7FMHgrUR/iGLQEoGTyBWhQ8bUGjiFPR4A3QIuKv7VwLKIcQMnue5Dv0fjT/IwtAM3g+RyMBmkU+BXf3qc5Rx3xqDPBE7LjfkaCheCcj1HYKYe6JeBt8GcEo75L3HaJQ7+nfNQ/x7H9p67TFX4L1Pi4EocdfhsGH4BPwVbwqu0xGwI/8vT2N/77Gv+vAJSCO3n6PJ//Vjz72w62cPtORnfAwx7+1nBsW93ugGow7vOKtPkYa9eDl0Clxji9kuvW+yjb5tPncY7xet3MhjoFt2RzgIlU2DQL/O6017W/Be4BawXJqMCgTH+ToOxajvWG1+AmYVBlBglQKrxwmzIFoB9XCzt91CABpL6sti62JcBiXtKS2GMGCSD1pZxjvi7AKmED9PraYJAAG2yvVL+2yi7AImHl90C3QQJ03/B+97ZF1lCYVlN6BBV/BffykNQkoyF4H5grqJOkO6BR2NF2A4O35gifCOs0JjTW9vYaPPPbJ11LJAFqBRVoDf68wQLQI3BBUL424XPiY1lvDOb/ZwRla0iAOYIKv8dAgEFB2VtJgJmCChMxEEAyHigmAQoFFWbFQIDZgrKF0p2hmTEQQOQjCTAmKD8vBgJUCcqOkQBXBBXosEORwcEXKdmBjCskwICgQr5h0+BMW6i8V7LtNkAC9As7WWqwAM8Jy/cnhBMhspVKvq2eC0uwbxLrSWhMa+dpdJQLW6mRpLtpOlyuMcL7CTwErhoSPG2ApjQEuD3BQ0fp0ZJqlT6pZYpt0wieYh60nuWDGp2+At4xIPgt7IvU0jHzBkFdgD27HWDGNGyGFHHfulaXuTN0IkBjZ8EykJeDwKmPFtAXwN8TTltjrVkKfwcawXJW3G3v8DTYCKoiCLwGvAl6QthpbnU6J5jP2f1uh1Wgxbbxwv0qvT/vtZRGA6wuzs50+Pkb8JdgQtPMq1VJld7bnxtSzhjgJD5hzwEW611OZK6xlSvzeYbAsl3Cx4PK7ozodOl6t93hfJByqbzOVnYh+MdHhxfBLI1bnuoMhRx8imPMKgDR5LG/nrSVfddHpx8HeO4/ClmApsw+snXsdk7gYMat+r5Hp0sDCLAkxOA7nfrI1nGxx2tmQUb5x8FuzgvD4Dw4wNm2MIAA1SEF38cx+RaAeBCMZGlwb44GOyUhBD/CsTj24TatpddXq3L+RIVmXnE4QzjJMaSylvBxFdqzKHsVrDD8Dmj36sOvIx0unewHDRENg4MI0BH2FyP0RcZOlzW3Ib7VLvPqDK0z1PEq7bDmLVwCLgnr0AhvnUp/0eJp0k9m6HO4fUp2nGZODgUY5PzUJVlHkxg1TEfnjxqY8I6yb12SSjqLm7T9/Ax4TaW/+JxuIx862KcL4toBk1QFT1omXZLRHQHaL3Npl/r8jH3QjiGsbJ3kGd/fDo6WBWi31KG9a9xXMgzfw35tVfCR9l52dk8Ibe7htnq57YowfY7i4+lYWUL9z+1fAQYACqstE4NCc18AAAAASUVORK5CYII=)}.community .community-callout-headline{margin-top:0}.community h3.centered-highlight{background-color:rgba(204,207,233,.1);padding:20px;text-align:center}.community .upcoming-event{min-width:330px}.community .upcoming-event img{width:50px}.community .upcoming-event .event-info{position:relative}.community .upcoming-event .meetup-text{max-height:300px;overflow-y:auto;padding-bottom:20px}.community .upcoming-event .meetup-gradient{background:var(--raised-background-color);background:var(--fade-gradient);height:30px;position:absolute;top:290px;width:100%}.community .events>h4{padding-left:20px}.row,.split-row{display:flex;flex-direction:row;flex-wrap:wrap}.split-row{align-items:center;justify-content:center}.split-row .first{margin-left:0}.col1{flex:1 1;min-width:250px;padding:1rem}.col2{flex:2 1}.col1.first{margin-left:20px}.col1.last{margin-right:0}@media(max-width:800px){.container>.row{flex-direction:column}}.version-bar{background-color:#262626;color:#fff;margin:0;padding:.7rem 2rem;text-align:center}.version-bar p{margin:0}.version-bar p a{color:#719af4}.grey-box{background-color:#d8d8d8;box-sizing:border-box;margin-right:20px;padding:18px}.grey-box a{color:#000}.clicky-grey-button.first,.grey-box.first{margin-left:20px}.clicky-grey-button.last,.grey-box.last{margin-right:0}.split-row>.clicky-grey-button{flex:1 1}@media(max-width:800px){main #index-2 h2{font-size:1.8rem;padding-left:20px;padding-right:20px}main #index-2 div.headline-diagram{height:400px;max-width:100%;overflow-x:hidden}main #index-2 .split-row>a{margin-left:20px!important;min-width:80%}main #index-2 .grey-box{margin-right:0}main #index-2 .illustration{display:none}main #index-2 ul.dropdown{margin-top:12px}main #index-2 .headline-diagram div.editor.front{margin:20px auto;position:static}main #index-2 .headline-diagram .text{overflow-x:scroll}main #index-2 #m-stories{flex-direction:column}main #index-2 #m-stories div.illustration{display:flex;justify-content:center;order:1}main #index-2 #m-stories div.illustration div.bg{visibility:hidden}main #index-2 #m-stories div.illustration div.fg{position:static;text-align:center}main #index-2 #m-stories div.copy{margin:20px auto 0;order:2;position:static;text-align:center}main #index-2 #m-stories div.copy a.migration-button{margin:0 auto}main #index-2 .small_full_width{width:100%}main #index-2 .github-bar{display:none}main #index-2 .get-started-section{flex-direction:column}main #index-2 .get-started-section a.get-started{background-image:none!important;height:auto!important;margin:0 auto}main #index-2 img{max-width:100%}main #index-2 h3{text-align:center}}@media(max-width:900px){.tag-container .twoslash-annotation.left{bottom:0;left:0;position:static;top:auto!important}.tag-container .twoslash-annotation.left svg{transform:rotate(44deg) scaleX(-1) translateX(-20px)!important}.tag-container .twoslash-annotation.right{display:none}}.show-only-small{display:none}@media(max-width:480px){.show-only-small{display:block!important}#index div.headline-diagram div.editor.front{max-width:300px}}#index-2 h1{font-size:2.5rem;font-weight:200;line-height:2.8rem;margin-top:0;padding-right:40px}#index-2 h1 strong{font-weight:600}#index-2 h2{font-size:2.5rem;font-weight:500;line-height:2.5rem;margin-top:0;text-align:center}#index-2 h3{font-size:1.6rem;font-weight:400;line-height:1.6rem;margin-bottom:2.5rem;margin-top:0}#index-2 p{font-size:1.2rem}#index-2 .col1{min-width:230px}@media(max-width:360px){#index-2 .col1{max-width:calc(100% - 2rem)}}#index-2 .darkblue{background-color:#00273f;color:#fff}#index-2 .blue{background-color:#3178c6;color:#fff}#index-2 .purple{background-color:#4e086f;color:#fff}#index-2 .dark-green{background-color:#086e12;color:#fff}#index-2 .white{background-color:#fff;color:#000}#index-2 .white .col1 h3{text-align:center}#index-2 .white .col1>p,#index-2 .white .col2>p{font-size:1.2rem}#index-2 .light-grey{background-color:#faf9f8;color:#000}#index-2 .grey{background-color:#d8d8d8;padding-bottom:0}#index-2 .grey div.container{padding:1rem}#index-2 .headline{min-height:420px}#index-2 .headline .col1{padding-bottom:3rem}#index-2 .headline p{padding-right:20px}#index-2 .headline .container{font-size:1rem;padding-bottom:0}#index-2 .container{max-width:1080px;padding-bottom:40px;padding-top:64px}#index-2 .container,#index-2 .container .half{display:flex;flex-direction:column;margin:0 auto;position:relative}#index-2 .container .half{max-width:780px}@media(max-width:360px){#index-2 .container .half{max-width:100%}}#index-2 .headline-diagram{display:relative}@media screen and (-ms-high-contrast:active){#index-2 .headline-diagram{border:2px solid #fff}}#index-2 .headline-diagram pre .code-container{overflow:hidden}#index-2 .headline-diagram pre .code-container a{display:none}#index-2 .headline-diagram .editor{border:2px solid #7fa2c9;border-radius:4px;width:540px}#index-2 .headline-diagram .editor ul.editor-tabs{display:flex;flex-direction:row;font-size:14px;margin:0;padding:0}#index-2 .headline-diagram .editor ul.editor-tabs li{list-style:none;padding:10px}#index-2 .headline-diagram .editor ul.editor-tabs li a{color:#fff;text-decoration:none}#index-2 .headline-diagram .editor ul.editor-tabs li.selected{text-decoration:underline}#index-2 .headline-diagram .editor .min-dark{display:none}#index-2 .headline-diagram .editor.front{border-radius:8px;width:96%}@media screen and (-ms-high-contrast:active){#index-2 .headline-diagram .editor.front{border:none}}#index-2 .headline-diagram .editor .error{border-left:0!important}#index-2 .headline-diagram .editor .editor-inner{position:relative}#index-2 .headline-diagram .editor .titlebar{border-bottom:2px solid #172e38;display:flex;flex-direction:row;height:2rem}#index-2 .headline-diagram .editor .titlebar .lang{display:none;margin-left:6px;margin-top:3px}#index-2 .headline-diagram .editor .titlebar .window-name{display:none;margin-left:10px;padding-top:5px}#index-2 .headline-diagram .editor .line-error{background-color:#c63131;height:20px;left:0;position:absolute;width:22px}#index-2 .headline-diagram .editor .underline-error{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='3' viewBox='0 0 6 3'%3E%3Cg fill='%23c94824'%3E%3Cpolygon points='5.5 0 2.5 3 1.1 3 4.1 0'/%3E%3Cpolygon points='4 0 6 2 6 .6 5.4 0'/%3E%3Cpolygon points='0 2 1 3 2.4 3 0 .6'/%3E%3C/g%3E%3C/svg%3E") repeat-x 0 100%;padding-bottom:3px}#index-2 .headline-diagram .editor .error-message{color:#444d80;font-family:var(--code-font);font-size:.8rem}#index-2 .headline-diagram .editor .error-behind{opacity:0}#index-2 .headline-diagram .editor .inline-completions{position:relative}#index-2 .headline-diagram .editor .inline-completions ul.dropdown{background-color:#fff;border-left:4px solid #4b9edd;color:gray;display:inline-block;font-family:var(--code-font);font-size:.8rem;margin:0;padding:0;position:absolute;width:240px}#index-2 .headline-diagram .editor .inline-completions ul.dropdown:before{background-color:#fff;content:" ";left:-3px;position:absolute;top:-16px;width:2px}#index-2 .headline-diagram .editor .inline-completions ul.dropdown li{border-bottom:1px solid #000;height:1rem;overflow-x:hidden;padding-left:4px}#index-2 .headline-diagram .editor .inline-completions ul.dropdown li span.result-found{color:#4b9edd}#index-2 .headline-diagram .editor .inline-completions ul.dropdown li span.result{color:#000;display:inline-block;width:100px}#index-2 .headline-diagram .editor .did-you-mean,#index-2 .headline-diagram .editor .did-you-mean-icon{position:absolute}#index-2 .headline-diagram .editor .content{display:flex;flex-direction:row}#index-2 .headline-diagram .editor .content svg{margin:12px auto}#index-2 .headline-diagram .editor .content svg path{fill:#fff}#index-2 .headline-diagram .editor .content .text{background-color:#235a97;border-radius:0 0 6px 6px;border-top:1px solid #7fa2c9;flex-grow:1;flex-shrink:1;font-family:var(--code-font);font-size:.8rem;height:260px;line-height:.95rem;overflow-x:auto;position:relative}#index-2 .headline-diagram .editor .content .text pre{background-color:#235a97;border:none;margin:0}#index-2 .headline-diagram .editor .content .text pre code{font-size:14px;line-height:16px}#index-2 .headline-diagram .editor .content .text pre .error{background-color:rgba(255,0,0,.149);color:#ffc5c5}#index-2 .headline-diagram .editor .content .text .language-id{display:none}#index-2 .headline-diagram .editor .highlight{color:#9ed5ff}#index-2 .headline-diagram .back .content .text>div{padding-right:200px}#index-2 .next-headline-button{align-items:center;background-color:#fff;bottom:20px;color:#000;cursor:pointer;display:flex;flex-direction:row;height:30px;justify-content:center;margin-bottom:20px;padding:3px;position:absolute;right:15px;text-decoration:none;width:30px}@media screen and (-ms-high-contrast:active){#index-2 .next-headline-button{border:2px solid gray}}#index-2 .next-headline-button.focus,#index-2 .next-headline-button:hover{background-color:#eee}#index-2 .next-headline-button:active{background-color:#ddd}#index-2 .next-headline-button .fluid-button-title{font-weight:600}#index-2 .next-headline-button svg path{fill:#000}@media screen and (-ms-high-contrast:active){#index-2 .next-headline-button svg path{fill:#ff0}}#index-2 a.get-started{align-items:flex-end;background-color:#fff;box-shadow:0 4px 20px -6px rgba(0,0,0,.25);box-sizing:border-box;color:#000;cursor:pointer;display:flex;margin:0 auto;max-width:244px;padding:1rem;text-decoration:none;width:100%}@media screen and (-ms-high-contrast:active){#index-2 a.get-started{border:2px solid gray}}#index-2 a.get-started.focus,#index-2 a.get-started:hover{background-color:#eee}#index-2 a.get-started:active{background-color:#ddd}#index-2 a.get-started .fluid-button-title{font-weight:600}#index-2 a.get-started.short{background:#3178c6;background-position-y:bottom -180px;color:#fff;height:260px;outline:1px solid #fff}#index-2 a.get-started.short.handbook{background-image:url(/images/index/get-started-handbook-blue.svg)}#index-2 a.get-started.short.playground{background-image:url(/images/index/get-started-playground-blue.svg)}#index-2 a.get-started.short.download{background-image:url(/images/index/get-started-download-blue.svg);background-position:100% 100%;background-repeat:no-repeat}#index-2 a.get-started.short svg path{stroke:#fff}#index-2 a.get-started.short:active{background-color:#156fb4}#index-2 a.get-started.short:focus-visible,#index-2 a.get-started.short:hover{box-shadow:0 4px 20px -2px rgba(0,0,0,.25);outline-width:2px}#index-2 a.get-started.tall{background:#fff;color:#000;height:342px;margin-bottom:2px;outline:1px solid #000}#index-2 a.get-started.tall:focus-visible,#index-2 a.get-started.tall:hover{box-shadow:0 4px 20px -2px rgba(0,0,0,.25);color:#3178c6;margin-bottom:0;outline-color:#3178c6;outline-width:2px}#index-2 a.get-started.tall:focus-visible svg path,#index-2 a.get-started.tall:hover svg path{stroke:#3178c6}#index-2 a.get-started.tall:active{background-color:#eee}#index-2 a.get-started .fluid-button-title{font-size:1.4rem}#index-2 a.get-started svg{margin-bottom:10px;margin-left:20px}#index-2 a.get-started:active{box-shadow:0 4px 10px 0 rgba(0,0,0,.25)}#index-2 a.get-started.handbook{background-image:url(/images/index/get-started-handbook.svg);background-position:0 100%;background-repeat:no-repeat}#index-2 a.get-started.playground{background-image:url(/images/index/get-started-playground.svg);background-position:bottom;background-repeat:no-repeat}#index-2 a.get-started.download{background-image:url(/images/index/get-started-download.svg);background-position:100% 100%;background-repeat:no-repeat}#index-2 .call-to-action{display:flex;justify-content:center;position:relative}#index-2 .call-to-action a.flat-button{background-color:#fff;color:#000;cursor:pointer;display:block;font-size:1.2rem;height:1.4rem;line-height:1.4rem;padding:1rem;text-align:center;text-decoration:none}@media screen and (-ms-high-contrast:active){#index-2 .call-to-action a.flat-button{border:2px solid gray}}#index-2 .call-to-action a.flat-button.focus,#index-2 .call-to-action a.flat-button:hover{background-color:#eee}#index-2 .call-to-action a.flat-button:active{background-color:#ddd}#index-2 .call-to-action a.flat-button .fluid-button-title{font-weight:600}#index-2 .call-to-action a.flat-button:first-child{margin-right:2rem}#index-2 .call-to-action .handbook-preview{background-color:#1a1a1a;padding:4rem}#index-2 .call-to-action .inline-buttons{background-color:#1a1a1a;display:flex;justify-content:center}#index-2 .call-to-action .inline-buttons a{background-color:#1a1a1a;border-left:4px solid #00273f;color:#fff;flex:1 1;margin:0!important}#index-2 .call-to-action .inline-buttons a:first-child{border-left:none}#index-2 .call-to-action .inline-buttons a:active,#index-2 .call-to-action .inline-buttons a:hover{color:#000}#index-2 .cta-redirects{overflow-y:hidden}#index-2 .cta-redirects>div{margin-bottom:-18%;position:relative}#index-2 .cta-redirects>div a{bottom:55%;position:absolute}#index-2 .release-info{display:flex;flex-direction:row;position:relative;width:100%}#index-2 .release-info .needle,#index-2 .release-info .needle-head{background-color:#000;height:68px;margin-top:-8px;position:absolute;width:2px}#index-2 .release-info .needle-head{background-color:transparent;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #000;height:0;margin-left:-4px;margin-top:-14px}#index-2 .release-info>div>div{display:flex;flex-direction:row}#index-2 .bar{height:50px;margin-left:-1px;width:100%}#index-2 .separator{background-color:#000;height:12px;margin-top:50px;width:1px}@media screen and (-ms-high-contrast:active){#index-2 .needle-head{opacity:0}#index-2 .release-info .needle{border:1px solid #000;height:80px}#index-2 .beta>div,#index-2 .rc>div,#index-2 .release>div,#index-2 form.search:focus{border:1px solid #000}}#index-2 .release{width:55%}#index-2 .release .bar{background-color:#c4c4c4}#index-2 .beta{width:28%}#index-2 .beta .bar{background-color:#3178c6}#index-2 .rc{width:17%}#index-2 .rc .bar{background-color:#235a97}#index-2 .migrations{overflow:hidden}#index-2 .migrations.github #migration_title{color:#fff}#index-2 .migrations strong{color:#187abf}#index-2 .migrations .container{padding-bottom:0}#index-2 #m-stories{min-height:370px;position:relative}#index-2 #m-stories .controls a{align-items:center;background-color:#c4c4c4;color:#000;display:flex;height:2rem;justify-content:center;line-height:2.5rem;position:absolute;text-align:center;top:70%;width:2rem;z-index:2}#index-2 #m-stories .controls a:hover{background-color:#eee}#index-2 #m-stories .controls a:active{background-color:#ddd;top:calc(70% + 1px)}#index-2 #m-stories .controls a.left{left:0}#index-2 #m-stories .controls a.right{right:0}#index-2 #m-stories .copy{background:#faf9f8;background:linear-gradient(90deg,#faf9f8 48%,hsla(30,17%,98%,.125))}#index-2 #m-stories .copy p{font-size:1rem}#index-2 #m-stories .airbnb .fg,#index-2 #m-stories .goog .illustration .fg{padding-top:40px}#index-2 #m-stories .copy{padding-left:20px;padding-right:30px;position:absolute;transition:opacity .2s ease-out;width:260px}#index-2 #m-stories .copy p{padding:1rem 0}#index-2 #m-stories .copy a.migration-button{border:1px solid #000;color:#000;display:block;padding:8px 0;text-align:center;text-decoration:none;width:60%}#index-2 #m-stories .copy a.migration-button:focus,#index-2 #m-stories .copy a.migration-button:hover{background-color:#fff;color:#000}#index-2 #m-stories .illustration .bg{position:absolute;right:20px}#index-2 #m-stories .illustration .fg{font-size:1.4rem;line-height:1.6rem;position:absolute;right:70px;width:370px}#index-2 .oss{width:100%}#index-2 .oss .icons{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around;margin:0 auto;max-width:800px}@media screen and (-ms-high-contrast:black-on-white){#index-2 .oss .icons svg path{fill:#000}}@media screen and (-ms-high-contrast:white-on-black){#index-2 .oss .icons svg path{fill:#fff}}#index-2 .oss .icons svg{margin:0 auto}#index-2 .oss .icons a{color:#fff;display:flex;flex:1 1;flex-direction:column;height:145px;justify-content:space-between;margin:20px;max-width:140px;text-align:center;width:140px}#index-2 .oss .icons a p{padding-bottom:0}#index-2 .github-bar{opacity:0;position:absolute;transition:opacity .3s ease-out}#index-2 .github-bar.left{left:-200px}#index-2 .github-bar.right{right:-200px}#index-2 ul#videos{margin:0;padding:0}#index-2 ul#videos li{border-left:2px solid transparent;list-style:none;margin:0;padding:0}#index-2 ul#videos li.active{border-color:#000}#index-2 ul#videos li a{color:#000;display:block;font-size:1rem;margin-left:6px;text-decoration:none}#index-2 ul#videos li span{font-size:.8rem;font-style:italic}#index-2 .installation-panel .flat-button{background-color:#fff;color:#000;cursor:pointer;display:block;margin-top:20px;padding:1rem;text-decoration:none}@media screen and (-ms-high-contrast:active){#index-2 .installation-panel .flat-button{border:2px solid gray}}#index-2 .installation-panel .flat-button.focus,#index-2 .installation-panel .flat-button:hover{background-color:#eee}#index-2 .installation-panel .flat-button:active{background-color:#ddd}#index-2 .installation-panel .flat-button .fluid-button-title{font-weight:600}#index-2 .installation-panel .flat-button button{background-color:transparent;border:none;float:right}#index-2 .installation-panel .flat-button svg{float:right;height:.9em;margin-top:3px;opacity:.5;transition:opacity .2s linear;width:.9em}#index-2 .installation-panel .flat-button:hover svg{opacity:1}#index-2 .installation-panel .tooltip{background-color:#3f3f3f;border-radius:2px;color:#fff;display:none;font-family:var(--code-font);font-size:14px;padding:5px 8px;pointer-events:none;text-align:center;white-space:pre-wrap;z-index:100}#index-2 #adopt-gradually-content.fancy-scroll{height:1400px}#index-2 #adopt-gradually-content.fancy-scroll #adopt-step-slider{height:580px;position:sticky;top:80px}#index-2 #adopt-gradually-content.fancy-scroll #adopt-step-blurb,#index-2 #adopt-gradually-content.fancy-scroll #global-stepper{bottom:64px;left:0;margin:0 auto;max-width:480px;position:absolute;right:0}#index-2 #adopt-gradually-content.fancy-scroll #global-stepper{bottom:32px;display:flex}#index-2 #adopt-gradually-content.fancy-scroll #global-stepper>div{opacity:.2;transition:opacity .2s}#index-2 #adopt-gradually-content.fancy-scroll #global-stepper>div.active{opacity:1}#index-2 #adopt-gradually-content.fancy-scroll .adopt-step{left:0;margin-left:auto;margin-right:auto;padding-top:200px;position:absolute;right:0;top:0;transition:opacity .2s}#index-2 #adopt-gradually-content.fancy-scroll .adopt-step .adopt-step-stepper,#index-2 #adopt-gradually-content.fancy-scroll .adopt-step>div>p,#index-2 #global-stepper{display:none}#index-2 .adopt-step{margin:20px auto;max-width:480px;padding-top:120px}#index-2 .adopt-step pre{margin-bottom:10px}#index-2 .adopt-step>p{font-size:1rem;font-weight:700;margin:10px 0}#index-2 .adopt-step .tag-container p{font-size:1rem}#index-2 .adopt-step-stepper{display:flex;margin-bottom:80px}#index-2 .adopt-step-stepper div{border:1px solid #000;display:inline-block;flex:1 1;height:13px;margin-left:10px;position:relative}#index-2 .adopt-step-stepper div.yellow,#index-2 .adopt-step-stepper div.yellow-hint-blue,#index-2 .adopt-step-stepper div.yellow-lot-blue{background-color:#ffe200}#index-2 .adopt-step-stepper div.yellow-hint-blue:after,#index-2 .adopt-step-stepper div.yellow-lot-blue:after{background-color:#3178c6;content:"";height:13px;left:0;position:absolute;width:20%}#index-2 .adopt-step-stepper div.yellow-lot-blue:after{width:60%}#index-2 .adopt-step-stepper div.first{margin-left:0}#index-2 .via-delete .highlight{background-color:#fee}#index-2 .via-delete .dim{opacity:1}.yellow{background-color:#f1dd3f;color:#000;margin-bottom:-110px}.yellow .col1{align-self:stretch;width:50%}.yellow .col1 pre{height:220px;overflow:hidden}.yellow .col1 pre code{font-size:14px;line-height:16px}.yellow a{color:#000}.darkblue.dt{position:relative}.darkblue.dt .dark-blue-trans-bg{background-color:rgba(0,39,62,.77)}.darkblue.dt .dark-blue-trans-bg a{color:#fff}.darkblue.dt .dt-background{bottom:20px;font-family:var(--code-font);font-size:1.2rem;left:20px;opacity:.2;overflow:hidden;position:absolute;top:20px;width:80%}.flex-column{flex-direction:column}.fluid-button{background-color:#fff;color:#000;display:flex;padding:.5rem 1rem;text-decoration:none}.fluid-button .fluid-button-title{font-weight:600}.fluid-button div.fluid-button-icon{align-items:center;border-left:2px solid #000;display:flex;justify-content:center;margin-left:1rem;margin-right:-1rem;min-width:4rem;text-align:center}.fluid-button.focus,.fluid-button:hover{background-color:#eee}.fluid-button:active{background-color:#ddd}.cta .cta-back a{left:20px;position:relative;top:20px;width:60px}.transparent-button{border:1px solid #fff;color:#fff;cursor:pointer;left:20px;padding:10px;position:absolute;text-decoration:none;top:40px;width:80px}.transparent-button svg{margin-right:8px}.transparent-button.focus,.transparent-button:hover{background-color:hsla(0,0%,100%,.063)}.transparent-button:active{background-color:hsla(0,0%,100%,.125);border:1px solid hsla(0,0%,100%,.376)}.flow-links{display:flex;flex-wrap:wrap}.clicky-grey-button{background-color:#d8d8d8;color:#000;display:flex;flex-direction:column-reverse;height:10rem;margin-bottom:20px;margin-right:20px;padding:18px;position:relative;text-decoration:none;width:16rem}.clicky-grey-button.white-theme{background-color:#fff;border:1px solid #000}.clicky-grey-button.white-theme:hover{background-color:#eee}.clicky-grey-button.white-theme:active{background-color:#f2f2f2;margin-bottom:19px}@media screen and (-ms-high-contrast:active){.clicky-grey-button{border:1px solid gray}.clicky-grey-button svg path{fill:#fff}}.clicky-grey-button.headline{height:200px;width:300px}.clicky-grey-button.links{height:26rem}.clicky-grey-button.focus,.clicky-grey-button:hover{background-color:#ccc}.clicky-grey-button:active{background-color:#ddd}.clicky-grey-button p{color:#000}.clicky-grey-button div{color:#000;font-size:1.6rem;font-weight:400;line-height:1.6rem;margin-bottom:.2rem;text-decoration:none}.clicky-grey-button div:hover{text-decoration:none}.clicky-grey-button p{margin-bottom:0;margin-top:0}.clicky-grey-button a{text-decoration:none}.clicky-grey-button .badge{background-color:#666;position:absolute;right:10px;top:10px}.columns{display:flex;flex-direction:row;flex-wrap:wrap;margin:0 -2.6rem}.columns.wide{justify-content:space-between}.columns.wide .item{min-width:240px}.columns .item{flex:1 1;margin:.6rem;padding:1rem}.columns .item h4{margin-top:0}.columns .item ul{padding:0}.columns .item ul ul{margin-left:.5rem}.columns .item li{list-style:none;margin-left:0}@media(max-width:800px){.columns{flex-direction:column;margin:0}}div#like-dislike-subnav div{font-size:14px;padding-left:4px;padding-top:16px}div#like-dislike-subnav div button{align-items:center;background:none;border:none;color:var(--text-color);display:inline-flex;flex-direction:row}div#like-dislike-subnav div button svg{fill:var(--text-color);color:var(--text-color);margin-right:4px}#beta{background:repeating-linear-gradient(45deg,#9b9a4e,#9b9a4e 10px,#6e6a33 0,#6e6a33 20px);background-color:"#c63131";color:#fff;padding:4px 4px 6px;text-align:center;text-shadow:0 2px 4px #000}#doc-layout{display:flex;flex-direction:row}#handbook-content{margin:auto;max-width:1200px;min-width:0;padding:0 2rem}@media(max-width:480px){#handbook-content{padding:0}}#handbook-content>h1{font-size:3.5rem;font-weight:400;letter-spacing:0;line-height:3.5rem}@media(max-width:800px){#handbook-content>h1{font-size:2.5rem;margin-left:1rem;margin-right:1rem}}#handbook-content article{display:flex;flex-direction:row;width:100%}@media(max-width:999px){#handbook-content article{flex-direction:column}}#handbook-content .whitespace,#handbook-content .whitespace-tight{margin:0 auto 1rem;overflow:hidden;padding:2rem}@media(max-width:999px){#handbook-content .whitespace,#handbook-content .whitespace-tight{order:2}}#handbook-content .whitespace-tight{padding:1.2rem 2rem}#handbook-content aside{flex-shrink:0;margin-left:20px;width:13rem}@media(min-width:1000px){#handbook-content aside{display:block}}@media(max-width:999px){#handbook-content aside{margin-left:0;order:1;position:relative;top:0;width:100%;z-index:1000}}#handbook-content aside nav{margin-bottom:1rem;position:sticky;top:30px}#handbook-content aside nav.deprecated{top:7rem}#handbook-content aside h5{font-size:16px;font-weight:600;margin:0}#handbook-content aside ul{padding:0}#handbook-content aside ul li{list-style:none}#handbook-content aside ul a{border-left:2px solid transparent;color:var(--alt-text-color);display:block;font-size:14px;font-weight:400;overflow:hidden;padding-left:8px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}#handbook-content aside ul a:active,#handbook-content aside ul a:hover{border-left:2px solid rgba(0,120,212,.3)}#handbook-content aside ul a.current{border-left:2px solid #0078d4}#handbook-content aside .like-dislike-subnav #dislike-button,#handbook-content aside .like-dislike-subnav #like-button{cursor:pointer}#handbook-content .preamble a{color:var(--text-color)}#handbook-content .justify-between{justify-content:space-between}#handbook-content a.navigation-link{flex:1 1;text-decoration:none}#handbook-content .prev-next{flex:1 1}#handbook-content .prev-next .arrow{align-items:center;display:flex;flex-direction:row;justify-content:center;margin-right:20px}#handbook-content .prev-next h3,#handbook-content .prev-next header,#handbook-content .prev-next p{margin:0;padding:0}#handbook-content .prev-next header{font-size:.8rem;margin-bottom:.5rem}#handbook-content .prev-next p{margin-bottom:.4rem}#handbook-content .prev-next header,#handbook-content .prev-next p{color:var(--text-color)}#handbook-content .prev-next:hover h3,#handbook-content .prev-next:hover svg path{fill:var(--text-color);color:var(--text-color)}#handbook-content .prev-next .nav-content{flex:1 1;padding-right:1rem}#handbook-content .prev-next.next{flex-direction:row-reverse;padding-left:1rem;padding-right:0;text-align:right}#handbook-content .prev-next.next .arrow{margin-left:20px;margin-right:0}#handbook-content .prev-next.next svg{transform:scaleX(-1)}#handbook-content .vertical-line{background-color:#e3e3e3;flex-basis:2px;flex-grow:0;flex-shrink:0;height:80px;min-width:2px}#handbook-content .docs-footer{border-top:1px solid var(--border-color);display:flex;flex-direction:row-reverse;height:2rem;margin:0 -2rem;padding:0}#handbook-content .docs-footer h5{font-weight:400;margin:0;padding:.5rem 1rem 0 0}#handbook-content .docs-footer button{align-items:center;background:none;border:none;border-left:1px solid var(--border-color);color:var(--text-color);cursor:pointer;display:inline-flex;flex-direction:row;padding:0 1rem}#handbook-content .docs-footer button:hover{background-color:var(--border-color)}#handbook-content .docs-footer button svg{fill:var(--text-color);color:var(--text-color);margin-right:4px}#handbook-content #deprecated-header{align-items:center;background-color:#fff4cf;color:#000;display:flex;justify-content:space-between;margin:0 -2rem;padding:1rem 2rem 1rem 0;position:sticky;top:0;z-index:1}#handbook-content #deprecated-header [id]:before{height:110px;margin-top:-110px}@media(max-width:800px){#handbook-content #deprecated-header{flex-direction:column;margin:0;padding:1rem}#handbook-content #deprecated-header h3{font-size:.8rem}#handbook-content #deprecated-header #deprecated-icon{margin-right:1rem}#handbook-content #deprecated-header #deprecated-action{margin-top:1rem}}#handbook-content #deprecated-header #deprecated-content{align-items:center;display:flex}#handbook-content #deprecated-header #deprecated-content #deprecated-icon{text-align:center;width:2rem}#handbook-content #deprecated-header h3{font-size:1.5rem;font-weight:400;margin-bottom:.5rem;margin-top:0}#handbook-content #deprecated-header p{margin-bottom:.2rem;margin-top:0}#handbook-content #deprecated-header #deprecated-action{flex-shrink:0}#handbook-content #deprecated-header #deprecated-action a{background-color:#fff;border:1px solid #000;color:#000;padding:.2rem .5rem;text-decoration:none}#handbook-content #deprecated-header #deprecated-action a:hover{background-color:#eee}#handbook-content .markdown table.cli-option{display:table}#handbook-content .markdown table.cli-option tr{width:100%}#handbook-content .markdown table.cli-option tr p{margin:0;padding:0}#handbook-content .markdown table.cli-option tr code{word-wrap:normal}#handbook-content .markdown table.cli-option tr.odd{background-color:var(--background-color)!important}#handbook-content .markdown table.cli-option tr.even{background-color:var(--background-minor-highlight-color)!important}#handbook-content .markdown table.cli-option ul{margin:0;padding:0}#handbook-content .markdown table.cli-option ul li{list-style:none;margin:0 0 8px}#handbook-content .markdown table.cli-option tr.option-description td{border-top:none;margin-top:0}.circle-bg{background-color:#719af4;color:#000;display:inline-block;line-height:31px;margin-right:3px;margin-top:12px;overflow:hidden;position:relative;text-align:center}.circle-bg,.circle-bg img{border-radius:16px;height:32px;width:32px}.circle-bg img{left:0;position:absolute;top:0}.bottom-section-content{flex:1 1;padding:1rem 2rem}@media(max-width:480px){.small-columns{flex-direction:column!important}}.inline-popup{background:var(--background-color);border-radius:2px;box-shadow:0 30px 90px -20px rgba(0,0,0,.3),0 0 1px 1px rgba(0,0,0,.05);font-size:14px;line-height:20px;max-width:400px;min-width:300px;padding:0;position:absolute;transition:opacity .5s;z-index:110}.inline-popup .inline-popup-container{display:flex}.inline-popup .inline-popup-container a.inline-popup-extract{color:var(--text-color);display:block;margin:16px;max-height:140px;overflow:hidden;position:relative;text-decoration:none}.inline-popup .inline-popup-container a.inline-popup-extract h5{margin-top:0}.inline-popup .inline-popup-container a.inline-popup-extract:after{background-color:transparent;bottom:0;content:" ";height:20px;pointer-events:none;position:absolute;width:25%}.inline-popup .inline-popup-container a.inline-popup-extract div{margin:0}.inline-popup .inline-popup-container a.inline-popup-extract div code{background-color:var(--inline-code-background-color);border-radius:2px;padding:2px 4px}.inline-popup.popup-fade-in{animation:.1s ease forwards}.handbook-on-this-page-section-list{max-height:80vh;overflow:auto}.handbook-on-this-page-section-list ul{padding-left:.5em!important}pre{background-color:#fff;border-bottom:1px solid #999;border-left:1px solid #999;color:#000;margin-bottom:3rem;overflow-x:auto;padding:12px;position:relative}pre.shiki{overflow-x:visible}pre.shiki:hover .dim{opacity:1}pre.shiki div.dim{opacity:.9}pre.shiki div.dim,pre.shiki div.highlight{margin:0;padding:0}pre.shiki div.highlight{background-color:#f1f8ff;opacity:1}pre.shiki div.line{min-height:1rem}pre.shiki .language-id{display:none}pre.twoslash{border-color:#719af4}pre.twoslash:hover data-lsp{border-color:#747474}pre.twoslash data-lsp:hover:before{background-color:#3f3f3f;border-radius:2px;color:#fff;content:attr(lsp);font-family:JetBrains Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:14px;padding:5px 8px;position:absolute;text-align:left;transform:translateY(1rem);white-space:pre-wrap;z-index:100}pre .code-container{overflow:auto}pre .code-container>a{border:1px solid var(--link-color);border-radius:4px;bottom:8px;color:var(--link-color);opacity:0;padding:0 8px;position:absolute;right:8px;text-decoration:none;transition-timing-function:ease;transition:opacity .3s}@media(prefers-reduced-motion:reduce){pre .code-container>a{transition:none}}pre .code-container>a:focus,pre .code-container>a:hover{background-color:var(--link-color);color:#fff;opacity:1}pre .code-container:focus a,pre .code-container:hover a{opacity:1}pre code{-webkit-overflow-scrolling:touch;font-family:JetBrains Mono,Menlo,Monaco,Consolas,Courier New,monospace;font-size:15px;white-space:pre}pre code a{text-decoration:none}pre .query{color:#137998;display:inline-block;margin-bottom:10px}pre .error,pre .error-behind{display:block;margin-bottom:4px;margin-left:-14px;margin-top:8px;padding:6px 6px 6px 14px;white-space:pre-wrap;width:calc(100% - 20px)}pre .error{align-items:center;background-color:#fee;border-left:2px solid #bf1818;color:#000;display:flex;margin-right:-2px;position:absolute}pre .error .code{display:none}pre .error-behind{color:#fee;-webkit-user-select:none;user-select:none;visibility:transparent}pre .arrow{background-color:#eee;border-left:1px solid #eee;border-top:1px solid #eee;height:8px;margin-left:.1rem;position:relative;top:-7px;transform:translateY(25%) rotate(45deg);width:8px}pre .popover{background-color:#eee;border-radius:3px;display:inline-block;margin-bottom:10px;margin-top:10px;padding:0 .5rem .6rem}pre .inline-completions ul.dropdown{background-color:#e7e7e7;border-left:4px solid #4b9edd;color:#333;display:inline-block;font-family:var(--code-font);font-size:.8rem;margin:0;padding:0;position:absolute;width:240px}pre .inline-completions ul.dropdown:before{background-color:#4b9edd;content:" ";left:-3px;position:absolute;top:-1.2rem;width:2px}pre .inline-completions ul.dropdown li{margin-bottom:4px;overflow-x:hidden;padding-left:4px}pre .inline-completions ul.dropdown li.deprecated{text-decoration:line-through}pre .inline-completions ul.dropdown li span.result-found{color:#2265a5}pre .inline-completions ul.dropdown li span.result{color:#000;display:inline-block;width:100px}.dark-theme .markdown pre{background-color:#d8d8d8;border-color:#ddd;filter:invert(98%) hue-rotate(180deg)}data-lsp{border-bottom:1px dotted transparent;transition-timing-function:ease;transition:border-color .3s}@media(prefers-reduced-motion:reduce){data-lsp{transition:none}}.tag-container{position:relative}.tag-container .twoslash-annotation{color:#187abf;font-family:JetBrains Mono,Menlo,Monaco,Consolas,Courier New,monospace;position:absolute;right:-210px;width:200px}.tag-container .twoslash-annotation svg{float:left;margin-left:-44px}.tag-container .twoslash-annotation.left{left:-200px;right:auto}.tag-container .twoslash-annotation.left svg{float:right;margin-right:-5px}.markdown{scroll-behavior:smooth}.markdown h1,.markdown h2,.markdown h3{white-space-collapse:preserve;display:flex;flex-wrap:wrap;font-weight:400;line-height:1.3}.markdown h1 a,.markdown h2 a,.markdown h3 a{padding-right:10px!important}.markdown h1[id]:before,.markdown h2[id]:before,.markdown h3[id]:before{content:"";display:block;height:30px;margin-top:-30px;visibility:hidden}.markdown h1{word-wrap:break-word;font-size:2rem;margin-bottom:12px;margin-top:0;word-break:break-word}.markdown h2{font-size:1.75rem;margin-bottom:12px;margin-top:32px}.markdown h3{font-size:1.1875rem;margin-bottom:18px;margin-top:30px}.markdown pre{clear:both;top:10px}.markdown blockquote{background-color:var(--inline-code-background-color);border-left:2px solid var(--border-color);font-size:.8rem;margin:auto;padding:.1rem 2rem}.markdown blockquote.bg-reading{border-left:none;float:right;margin-left:.5rem}.markdown .language-id{display:none}.markdown table{border-collapse:separate;border-spacing:0;display:block;font-size:.875rem;max-width:100%;overflow-x:auto;table-layout:auto;width:100%}.markdown table.data{display:table}.markdown table.data td,.markdown table.data th,.markdown table.data tr{text-align:center}.markdown table td,.markdown table th{word-wrap:break-word;border:0;border-top:1px solid var(--border-color);display:table-cell;line-height:1.5;padding:.75rem 1rem;text-align:left;vertical-align:top}.markdown table tr:nth-child(2n){background-color:var(--background-minor-highlight-color)}.markdown table th{border-top:none}.markdown img{max-width:100%}.markdown div.table-container{overflow-x:auto}.markdown table.full-width-table{display:table;width:100%}.markdown .blue-tick{color:#3178c6;font-size:1.2rem;font-weight:700}.markdown .black-tick{color:#086f56;font-size:1.2rem}.markdown .red-cross{color:#c63131;font-size:1.2rem}#glossary ul.filterable-quicklinks{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center}#glossary ul.filterable-quicklinks li{background-color:#e0e0e0;cursor:pointer;list-style:none;margin:.1rem;padding:.3rem;text-decoration:none}@media screen and (-ms-high-contrast:active){#glossary ul.filterable-quicklinks li{border:2px solid gray}}#glossary ul.filterable-quicklinks li.focus,#glossary ul.filterable-quicklinks li:hover{background-color:#cecece}#glossary ul.filterable-quicklinks li:active{background-color:#adadad}#glossary ul.filterable-quicklinks li a{color:#000;text-decoration:none}#glossary ul.filterable-quicklinks li a:visited{color:#505050}.cropper{background-color:#f9f6f6;display:block;height:500px;overflow:hidden;position:relative}.cropper img{margin-left:-50px}.cropper p{background:#fff;background:linear-gradient(0deg,#fff,hsla(0,0%,100%,.5));bottom:0;font-size:3rem;left:0;line-height:3rem;margin:0;padding-bottom:.8rem;padding-left:.8rem;position:absolute;width:100%}.dev-tools h3{margin:.6rem 0 0 1rem}@media(max-width:800px){.navbar-sub.dev-tools{height:auto}.navbar-sub.dev-tools .nav{flex-direction:column}}.examples{background-color:var(--playground-dropdown-bg);box-shadow:0 6px 12px rgba(0,0,0,.175);color:var(--text-color);height:450px;padding:20px}.examples a{color:var(--link-color)}.examples button.section-name{background-color:transparent;border:none;color:var(--text-color);font-size:2rem;font-weight:600;height:2.8rem;margin-right:1rem;margin-top:0;padding-bottom:.05rem;padding-top:0;text-decoration:none}.examples button.section-name.selected{border-bottom:2px solid #3178c6}.examples>ol{padding-left:0}.examples>ol li{display:inline-block;margin-bottom:20px;padding:0;width:auto}.examples>ol li:hover{background-color:transparent}.examples ol{list-style:none;padding-left:0;padding-right:20px}.examples>div.section-content{display:flex;flex-wrap:wrap}.examples>div.section-content>p>a{color:#3178c6;display:inline-block;padding:0}.examples>div.section-content .section-list{display:flex;flex-direction:column;margin-top:1.5em;width:280px}.examples>div.section-content .section-list h4{font-size:16px;font-weight:600;margin:0 0 8px}.examples>div.section-content .section-list ol li{margin:0;padding:0;position:relative;width:auto!important}.examples>div.section-content .section-list ol li .section-list a{border-bottom:none;display:block;font-size:14px;margin-left:-8px;padding:4px 4px 4px 10px;text-decoration:none}.examples>div.section-content .section-list ol li .section-list a:hover{color:#000}.examples>div.section-content .section-list ol li .section-list a.highlight{border-left:2px solid #235a97;padding-left:8px}.examples>div.section-content .section-list ol li .example-indicator{border-radius:.5rem;height:.5rem;margin-top:.3rem;position:absolute;right:.8rem;top:.75rem;width:.5rem}.examples>div.section-content .section-list ol li .example-indicator.done{background-color:#235a97}.examples>div.section-content .section-list ol li .example-indicator.changed{border:1px solid #235a97}.tsconfig{margin-bottom:6rem}@media(max-width:480px){.tsconfig.raised{margin:0;padding:2rem}.tsconfig.raised #full-option-list{padding:10px}.tsconfig.raised .indent{padding:1rem}}.tsconfig.button{margin-bottom:2rem}.tsconfig.button>a{display:block}.tsconfig.button svg{margin-right:.3rem;margin-top:.8rem}.tsconfig.button svg path{stroke:var(--text-color)}.tsconfig.button.closed svg{transform:rotate(270deg)}.tsconfig.button.open a{color:var(--text-color);text-decoration:none}.tsconfig .tsconfig-quick-nav{margin-left:-1rem;padding-left:1rem}.tsconfig .tsconfig-quick-nav.grouped{border-left:1px solid var(--text-color);margin-bottom:3rem}.tsconfig .tsconfig-quick-nav h4{font-weight:400;margin-bottom:.1rem}.tsconfig .tsconfig-quick-nav h4 a{color:var(--text-color)}.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category{align-items:flex-start;display:flex}@media(max-width:900px){.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category{flex-direction:column}}.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category h5{flex:0 0 auto;width:160px}.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category ol{flex:1 1 auto;max-width:100%}.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category li{display:inline-block;list-style:none;margin-left:8px}.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category li a{color:var(--text-color);text-decoration:none}.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category li a:hover{text-decoration:underline}.tsconfig .tsconfig-quick-nav .tsconfig-quick-nav-category li span{opacity:.8}.tsconfig article{width:100%}.tsconfig a[id]:before{content:"";display:block;height:80px;margin-top:-80px;scroll-margin-top:121px;visibility:hidden}.tsconfig .indent{padding:2rem}.tsconfig div#full-option-list{display:flex;flex-flow:row wrap}.tsconfig div#full-option-list div.tsconfig-nav-top{flex:auto;margin:0 8px 8px 0;width:30%}@media(max-width:480px){.tsconfig div#full-option-list div.tsconfig-nav-top{width:46%}.tsconfig div#full-option-list div.tsconfig-nav-top h5{overflow-x:hidden}}.tsconfig div#full-option-list div.tsconfig-nav-top h5 a{color:var(--text-color);font-size:2rem;font-weight:400;text-decoration:none}.tsconfig div#full-option-list div.tsconfig-nav-top ul{margin:0;padding:0}.tsconfig div#full-option-list div.tsconfig-nav-top li{font-family:var(--code-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tsconfig div#full-option-list div.tsconfig-nav-top li a{color:var(--text-color)}.tsconfig nav{background-color:var(--raised-background-color);border-bottom:1px solid #d3d3d3;flex-direction:row;padding-bottom:10px;padding-top:4px;position:sticky;top:0;z-index:99999}.tsconfig nav,.tsconfig nav ul{display:flex;justify-content:center}.tsconfig nav ul{flex-wrap:wrap;margin:0}@media(max-width:800px){.tsconfig nav{position:static}.tsconfig nav ul{flex-wrap:wrap}.tsconfig nav li{min-width:120px}}.tsconfig nav a{text-decoration:none}.tsconfig nav a.current{border-bottom:1px solid #3178c6}.tsconfig nav li{display:block;margin:6px}.tsconfig .category{margin-bottom:40px;margin-top:80px}.tsconfig .category>h2>a:focus{background-color:#000;color:#fff;outline:none}.tsconfig .compiler-option{margin-bottom:80px}.tsconfig .compiler-option>h3{margin-bottom:0;offset-anchor:-30px;overflow-x:hidden}@media(max-width:800px){.tsconfig .compiler-option>h3{display:block;overflow-y:hidden}}.tsconfig .compiler-option>h3>a{scroll-margin-top:65px}.tsconfig .compiler-option>h3>a:focus{background-color:#000;color:#fff;outline:none}.tsconfig .compiler-option .compiler-content{display:flex}.tsconfig .compiler-option .compiler-content .markdown{word-wrap:break-word;border-right:1px solid gray;flex-shrink:1;padding-right:20px;width:calc(100% - 250px)}@media(max-width:480px){.tsconfig .compiler-option .compiler-content .markdown{border-right:none;padding-right:0}}.tsconfig .compiler-option .compiler-content ul.compiler-option-md{float:right;margin-left:20px;max-width:220px;min-width:200px;overflow-x:hidden;padding:0;width:220px}.tsconfig .compiler-option .compiler-content ul.compiler-option-md span{display:block;font-weight:600;width:100px}.tsconfig .compiler-option .compiler-content ul.compiler-option-md li{list-style:none;margin-bottom:12px}.tsconfig .compiler-option .compiler-content ul.compiler-option-md li ul{margin-bottom:18px;padding:0}.tsconfig .compiler-option .compiler-content ul.compiler-option-md li li{margin:0 0 12px}.tsconfig .compiler-option .compiler-content ul.compiler-option-md tr{padding:10px 0}.tsconfig .compiler-option .compiler-content ul.compiler-option-md li>p{display:inline-block;margin:0}@media(max-width:800px){.tsconfig .compiler-option .compiler-content{flex-direction:column}.tsconfig .compiler-option .compiler-content .markdown{width:100%}.tsconfig .compiler-option .compiler-content ul.compiler-option-md{margin-left:0;width:100%}}</style><link rel="icon" href="/favicon-32x32.png?v=8944a05a8b601855de116c8a56d3b3ae" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=8944a05a8b601855de116c8a56d3b3ae"/><link rel="sitemap" type="application/xml" href="/sitemap-index.xml"/><title data-react-helmet="true">TypeScript: JavaScript With Syntax For Types.</title><link data-react-helmet="true" rel="preload" href="/css/docsearch.css" as="style"/><link data-react-helmet="true" rel="preconnect" href="https://consentdeliveryfd.azurefd.net/"/><style data-react-helmet="true"> pre data-err { background:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%206%203'%20enable-background%3D'new%200%200%206%203'%20height%3D'3'%20width%3D'6'%3E%3Cg%20fill%3D'%23c94824'%3E%3Cpolygon%20points%3D'5.5%2C0%202.5%2C3%201.1%2C3%204.1%2C0'%2F%3E%3Cpolygon%20points%3D'4%2C0%206%2C2%206%2C0.6%205.4%2C0'%2F%3E%3Cpolygon%20points%3D'0%2C2%201%2C3%202.4%2C3%200%2C0.6'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") repeat-x 0 100%; padding-bottom: 3px; }</style><style type="text/css"> .anchor.before { position: absolute; top: 0; left: 0; transform: translateX(-100%); padding-right: 4px; } .anchor.after { display: inline-block; padding-left: 4px; } h1 .anchor svg, h2 .anchor svg, h3 .anchor svg, h4 .anchor svg, h5 .anchor svg, h6 .anchor svg { visibility: hidden; } h1:hover .anchor svg, h2:hover .anchor svg, h3:hover .anchor svg, h4:hover .anchor svg, h5:hover .anchor svg, h6:hover .anchor svg, h1 .anchor:focus svg, h2 .anchor:focus svg, h3 .anchor:focus svg, h4 .anchor:focus svg, h5 .anchor:focus svg, h6 .anchor:focus svg { visibility: visible; } </style><script> document.addEventListener("DOMContentLoaded", function(event) { var hash = window.decodeURI(location.hash.replace('#', '')) if (hash !== '') { var element = document.getElementById(hash) if (element) { var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop var clientTop = document.documentElement.clientTop || document.body.clientTop || 0 var offset = element.getBoundingClientRect().top + scrollTop - clientTop // Wait for the browser to finish rendering before scrolling. setTimeout((function() { window.scrollTo(0, offset - 0) }), 0) } } }) </script></head><body><script> (function() { let hasLocalStorage = false try { hasLocalStorage = typeof localStorage !== "undefined" } catch (error) {} const systemIsDark = typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches const hasSetColorTheme = hasLocalStorage && localStorage.getItem("force-color-theme") const customThemeOverride = hasLocalStorage && localStorage.getItem("force-color-theme") if (!hasSetColorTheme && systemIsDark) { document.documentElement.classList.add("dark-theme") } else if (customThemeOverride) { document.documentElement.classList.add(customThemeOverride.replace("force-", "") + "-theme") } const customFontOverride = hasLocalStorage && localStorage.getItem("force-font") || "cascadia" document.documentElement.classList.add('font-' + customFontOverride) })() </script><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><div class="ms-Fabric"><div id="cookie-banner" class="openx"></div><header dir="ltr"><a class="skip-to-main" href="#site-content" tabindex="0">Skip to main content</a><div id="top-menu" class="up"><div class="left below-small"><a aria-current="page" id="home-page-logo" aria-label="TypeScript Home Page" class="" href="/"><svg fill="none" height="26" viewBox="0 0 27 26" width="27" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m.98608 0h24.32332c.5446 0 .9861.436522.9861.975v24.05c0 .5385-.4415.975-.9861.975h-24.32332c-.544597 0-.98608-.4365-.98608-.975v-24.05c0-.538478.441483-.975.98608-.975zm13.63142 13.8324v-2.1324h-9.35841v2.1324h3.34111v9.4946h2.6598v-9.4946zm1.0604 9.2439c.4289.2162.9362.3784 1.5218.4865.5857.1081 1.2029.1622 1.8518.1622.6324 0 1.2331-.0595 1.8023-.1784.5691-.1189 1.0681-.3149 1.497-.5879s.7685-.6297 1.0187-1.0703.3753-.9852.3753-1.6339c0-.4703-.0715-.8824-.2145-1.2365-.1429-.3541-.3491-.669-.6186-.9447-.2694-.2757-.5925-.523-.9692-.7419s-.8014-.4257-1.2743-.6203c-.3465-.1406-.6572-.2771-.9321-.4095-.275-.1324-.5087-.2676-.7011-.4054-.1925-.1379-.3409-.2838-.4454-.4379-.1045-.154-.1567-.3284-.1567-.523 0-.1784.0467-.3392.1402-.4824.0935-.1433.2254-.2663.3959-.369s.3794-.1824.6269-.2392c.2474-.0567.5224-.0851.8248-.0851.22 0 .4523.0162.697.0486.2447.0325.4908.0825.7382.15.2475.0676.4881.1527.7218.2555.2337.1027.4495.2216.6475.3567v-2.4244c-.4015-.1514-.84-.2636-1.3157-.3365-.4756-.073-1.0214-.1095-1.6373-.1095-.6268 0-1.2207.0662-1.7816.1987-.5609.1324-1.0544.3392-1.4806.6203s-.763.6392-1.0104 1.0743c-.2475.4352-.3712.9555-.3712 1.5609 0 .7731.2268 1.4326.6805 1.9785.4537.546 1.1424 1.0082 2.0662 1.3866.363.146.7011.2892 1.0146.4298.3134.1405.5842.2865.8124.4378.2282.1514.4083.3162.5403.4946s.198.3811.198.6082c0 .1676-.0413.323-.1238.4662-.0825.1433-.2076.2676-.3753.373s-.3766.1879-.6268.2473c-.2502.0595-.5431.0892-.8785.0892-.5719 0-1.1383-.0986-1.6992-.2959-.5608-.1973-1.0805-.4933-1.5589-.8879z" fill="#fff" fill-rule="evenodd"></path></svg><span class="hide-small">TypeScript</span></a><nav aria-label="top menu"><ul role="tablist" aria-owns="tab1 tab2 tab3 tab4 tab5 tab6" aria-busy="true"><li class="nav-item hide-small" role="none presentation"><a id="tab1" role="tab" href="/download/">Download</a></li><li class="nav-item" role="none presentation"><a id="tab2" role="tab" href="/docs/"><span>Docs</span></a></li><li class="nav-item show-only-large" role="none presentation"><a id="tab3" role="tab" href="/docs/handbook/intro.html">Handbook</a></li><li class="nav-item" role="none presentation"><a id="tab4" role="tab" href="/community/">Community</a></li><li class="nav-item show-only-largest" role="none presentation"><a id="tab5" role="tab" to="/play/" href="/play/">Playground</a></li><li class="nav-item" role="none presentation"><a id="tab6" role="tab" href="/tools/">Tools</a></li></ul></nav></div><div class="right above-small"><div class="search-section"><div id="my-lang-quick-jump" style="display:none" class="nav-item"><a href="">in En</a></div><div class="nav-item"><form id="search-form" class="search top-nav" role="search" aria-live="assertive"><svg fill="none" height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m10.5 0c.5052 0 .9922.0651042 1.4609.195312.4688.130209.9063.315105 1.3125.554688.4063.239583.7761.52865 1.1094.86719.3386.33333.6276.70312.8672 1.10937s.4245.84375.5547 1.3125.1953.95573.1953 1.46094-.0651.99219-.1953 1.46094-.3151.90625-.5547 1.3125-.5286.77864-.8672 1.11718c-.3333.33334-.7031.61978-1.1094.85938-.4062.2396-.8437.4245-1.3125.5547-.4687.1302-.9557.1953-1.4609.1953-.65104 0-1.27604-.1094-1.875-.3281-.59375-.2188-1.14062-.5339-1.64062-.94534l-6.132818 6.12504c-.098958.0989-.216145.1484-.351562.1484s-.252604-.0495-.351562-.1484c-.0989588-.099-.148438-.2162-.148438-.3516s.0494792-.2526.148438-.3516l6.125002-6.13278c-.41146-.5-.72656-1.04687-.94532-1.64062-.21874-.59896-.32812-1.22396-.32812-1.875 0-.50521.0651-.99219.19531-1.46094s.31511-.90625.55469-1.3125.52604-.77604.85938-1.10937c.33854-.33854.71093-.627607 1.11718-.86719s.84375-.424479 1.3125-.554688c.46875-.1302078.95573-.195312 1.46094-.195312zm0 10c.6198 0 1.2031-.11719 1.75-.35156.5469-.23959 1.0234-.5625 1.4297-.96875.4062-.40625.7265-.88281.9609-1.42969.2396-.54688.3594-1.13021.3594-1.75s-.1198-1.20312-.3594-1.75c-.2344-.54688-.5547-1.02344-.9609-1.42969-.4063-.40625-.8828-.72656-1.4297-.96093-.5469-.23959-1.1302-.35938-1.75-.35938-.61979 0-1.20312.11979-1.75.35938-.54688.23437-1.02344.55468-1.42969.96093s-.72916.88281-.96875 1.42969c-.23437.54688-.35156 1.13021-.35156 1.75s.11719 1.20312.35156 1.75c.23959.54688.5625 1.02344.96875 1.42969s.88281.72916 1.42969.96875c.54688.23437 1.13021.35156 1.75.35156z" fill="#fff"></path></svg><span><input id="search-box-top" type="search" placeholder="Search Docs" aria-label="Search the TypeScript site"/></span><input type="submit" style="display:none"/></form></div></div></div></div><div id="site-content"></div></header><main role="main"><div id="index-2"><div class="blue headline"><div class="container"><div class=" row"><div class=" col1"><h1>TypeScript is <strong>JavaScript with syntax for types.</strong></h1><p>TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.</p><div class="call-to-action" style="justify-content:left"><a class="fluid-button undefined" href="/download"><div><div class="fluid-button-title">Try TypeScript Now</div><div class="fluid-button-subtitle">Online or via npm</div></div><div class="fluid-button-icon"><svg width="21" height="5" viewBox="0 0 21 5" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="0.5" y="0.5" width="4" height="4" stroke="black"></rect><rect x="8.5" y="0.5" width="4" height="4" stroke="black"></rect><rect x="16.5" y="0.5" width="4" height="4" stroke="black"></rect></svg></div></a></div></div><div class=" col1"><div class="headline-diagram"><div class="slides"><div class="editor ts front"><ul class="editor-tabs" role="tablist" aria-owns="tabId1 tabId2 tabId3 tabId4" aria-busy="true"><li class="selected" role="none presentation"><a id="tabId1" href="#" role="tab" aria-selected="true">Editor Checks</a></li><li class="" role="none presentation"><a id="tabId2" href="#" role="tab" aria-selected="false">Auto-complete</a></li><li class="" role="none presentation"><a id="tabId3" href="#" role="tab" aria-selected="false">Interfaces</a></li><li class="" role="none presentation"><a id="tabId4" href="#" role="tab" aria-selected="false">JSX</a></li></ul><div class="content" id="above-the-fold-headline-code"><div class="text"><div> <pre class="shiki min-dark twoslash lsp" style="background-color: #1f1f1f; color: #b392f0"><div class="language-id">ts</div><div class='code-container'><code><div class='line'><span style="color: #F97583">const</span><span style="color: #B392F0"> </span><span style="color: #79B8FF"><data-lsp lsp='const user: { firstName: string; lastName: string; role: string; }' >user</data-lsp></span><span style="color: #B392F0"> </span><span style="color: #F97583">=</span><span style="color: #B392F0"> {</span></div><div class='line'><span style="color: #B392F0"> <data-lsp lsp='(property) firstName: string' >firstName</data-lsp></span><span style="color: #F97583">:</span><span style="color: #B392F0"> </span><span style="color: #FFAB70">"Angela"</span><span style="color: #B392F0">,</span></div><div class='line'><span style="color: #B392F0"> <data-lsp lsp='(property) lastName: string' >lastName</data-lsp></span><span style="color: #F97583">:</span><span style="color: #B392F0"> </span><span style="color: #FFAB70">"Davis"</span><span style="color: #B392F0">,</span></div><div class='line'><span style="color: #B392F0"> <data-lsp lsp='(property) role: string' >role</data-lsp></span><span style="color: #F97583">:</span><span style="color: #B392F0"> </span><span style="color: #FFAB70">"Professor"</span><span style="color: #B392F0">,</span></div><div class='line'><span style="color: #B392F0">}</span></div><div class='line'> </div><div class='line'><span style="color: #79B8FF"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #B392F0">.<data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp>(</span><span style="color: #79B8FF"><data-lsp lsp='const user: { firstName: string; lastName: string; role: string; }' >user</data-lsp></span><span style="color: #B392F0">.<data-err><data-lsp lsp='any' >name</data-lsp></data-err>)</span></div><span class="error"><span>Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'.</span><span class="code">2339</span></span><span class="error-behind">Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'.</span><div class='line'> </div></code></div></pre> <pre class="shiki homepage twoslash lsp" style="background-color: #235A97; color: #eeeeee"><div class="language-id">ts</div><div class='code-container'><code><div class='line'><span style="color: #E3EBF3">const</span><span style="color: #EEEEEE"> </span><span style="color: #C4FF85"><data-lsp lsp='const user: { firstName: string; lastName: string; role: string; }' >user</data-lsp></span><span style="color: #EEEEEE"> </span><span style="color: #F2F1EF">=</span><span style="color: #EEEEEE"> {</span></div><div class='line'><span style="color: #EEEEEE"> <data-lsp lsp='(property) firstName: string' >firstName</data-lsp>: </span><span style="color: #F7CBA4">"Angela"</span><span style="color: #EEEEEE">,</span></div><div class='line'><span style="color: #EEEEEE"> <data-lsp lsp='(property) lastName: string' >lastName</data-lsp>: </span><span style="color: #F7CBA4">"Davis"</span><span style="color: #EEEEEE">,</span></div><div class='line'><span style="color: #EEEEEE"> <data-lsp lsp='(property) role: string' >role</data-lsp>: </span><span style="color: #F7CBA4">"Professor"</span><span style="color: #EEEEEE">,</span></div><div class='line'><span style="color: #EEEEEE">}</span></div><div class='line'> </div><div class='line'><span style="color: #C4FF85"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #EEEEEE">.</span><span style="color: #E0FFFF"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #EEEEEE">(</span><span style="color: #C4FF85"><data-lsp lsp='const user: { firstName: string; lastName: string; role: string; }' >user</data-lsp></span><span style="color: #EEEEEE">.</span><span style="color: #C4FF85"><data-err><data-lsp lsp='any' >name</data-lsp></data-err></span><span style="color: #EEEEEE">)</span></div><span class="error"><span>Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'.</span><span class="code">2339</span></span><span class="error-behind">Property 'name' does not exist on type '{ firstName: string; lastName: string; role: string; }'.</span><div class='line'> </div></code></div></pre> </div></div></div></div></div><a class="next-headline-button" href="#" aria-label="Show code sample"><svg width="11" height="15" viewBox="0 0 11 15" fill="#F1F1F1" xmlns="http://www.w3.org/2000/svg"><path d="M0 14.5V0.5L10.5 7L0 14.5Z"></path></svg></a></div></div></div></div></div><div class="version-bar"><p><a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/">TypeScript <!-- -->5.7</a> <!-- -->is now available</p></div><div class="white "><div class="container"><h2>What is TypeScript?</h2><div class=" row"><div class=" col1"><h3>JavaScript and More</h3><p>TypeScript adds additional syntax to JavaScript to support a <strong>tighter integration with your editor</strong>. Catch errors early in your editor.</p></div><div class=" col1"><h3>A Result You Can Trust</h3><p>TypeScript code converts to JavaScript, which <strong>runs anywhere JavaScript runs</strong>: In a browser, on Node.js, Deno, Bun and in your apps.</p></div><div class=" col1"><h3>Safety at Scale</h3><p>TypeScript understands JavaScript and uses <strong>type inference to give you great tooling</strong> without additional code.</p></div></div></div></div><div class="light-grey get-started-section"><div class="container"><h2 id="get_started">Get Started</h2><div class=" row"><div class=" col1"><a class="get-started tall handbook" href="/docs/handbook/intro.html"><div><div class="fluid-button-title">Handbook</div><div class="fluid-button-subtitle">Learn the language</div></div><div><svg width="14" height="23" viewBox="0 0 14 23" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 2L11 11.5L2 21" stroke="black" stroke-width="4"></path></svg></div></a></div><div class=" col1"><a to="/play" class="get-started tall playground" href="/play"><div><div class="fluid-button-title">Playground</div><div class="fluid-button-subtitle">Try in your browser</div></div><div><svg width="14" height="23" viewBox="0 0 14 23" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 2L11 11.5L2 21" stroke="black" stroke-width="4"></path></svg></div></a></div><div class=" col1"><a class="get-started tall download" href="/download/"><div><div class="fluid-button-title">Download</div><div class="fluid-button-subtitle">Install TypeScript</div></div><div><svg width="14" height="23" viewBox="0 0 14 23" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 2L11 11.5L2 21" stroke="black" stroke-width="4"></path></svg></div></a></div></div></div></div><div id="get-started" class="animate"><div class="white "><div class="container"><div class=" half"><div id="adopt-gradually-content" class="no-js"><h2 id="adopt-gradually">Adopt TypeScript Gradually</h2><div id="adopt-step-slider"><p id="adopt-step-blurb"></p><div class=" row"><div class=" col1"><p>Apply types to your JavaScript project incrementally, <strong>each step improves editor support</strong> and improves your codebase.</p></div><div class=" col1"><p>Let's take this incorrect JavaScript code, and see how <strong>TypeScript can catch mistakes in your editor</strong>.</p></div></div><div class=" row"><div class=" col1"><div class="adopt-step"><div class="adopt-step-content"><div> <div class='tag-container'><pre class="shiki light-plus twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">js</div><div class='code-container'><code><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function compact(arr: any): any' >compact</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any' >arr</data-lsp></span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-lsp lsp='any' >orr</data-lsp></span><span style="color: #000000">.</span><span style="color: #001080"><data-lsp lsp='any' >length</data-lsp></span><span style="color: #000000"> > </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any' >arr</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='any' >trim</data-lsp></span><span style="color: #000000">(</span><span style="color: #098658">0</span><span style="color: #000000">, </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any' >arr</data-lsp></span></div><div class='line'><span style="color: #000000">}</span></div></code></div></pre> <div class='twoslash-annotation left' style="top: 0.8rem"> <svg style='transform: translateX(5px) translateY(-2px) rotate(40deg);' width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1 39C1.5 32.7511 6.1 17.5173 20.5 6.57333M11.5 4.04L27 0.999998C24.8333 4.88444 20.5 13.16 20.5 15.1867" stroke="black" /> </svg> <p class='twoslash-annotation-text' style="transform: rotate(3deg)">No editor warnings in JavaScript files<br/><br/>This code crashes at runtime!</p> </div></div> </div><p>JavaScript file</p><div class="adopt-step-stepper"><div class="first yellow"></div><div class=""></div><div class=""></div><div class=""></div></div></div></div><div class="adopt-step"><div class="adopt-step-content"><div> <div class='tag-container'><pre class="shiki light-plus twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">js</div><div class='code-container'><code><div class='line'><span style="color: #008000">// @ts-check</span></div><div class='line'> </div><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function compact(arr: any): any' >compact</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any' >arr</data-lsp></span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-err><data-lsp lsp='any' >orr</data-lsp></data-err></span><span style="color: #000000">.</span><span style="color: #001080"><data-lsp lsp='any' >length</data-lsp></span><span style="color: #000000"> > </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><span class="error"><span>Cannot find name 'orr'.</span><span class="code">2304</span></span><span class="error-behind">Cannot find name 'orr'.</span><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any' >arr</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='any' >trim</data-lsp></span><span style="color: #000000">(</span><span style="color: #098658">0</span><span style="color: #000000">, </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any' >arr</data-lsp></span></div><div class='line'><span style="color: #000000">}</span></div></code></div></pre> <div class='twoslash-annotation left' style="top: 1.3rem"> <svg style='transform: translateX(7px) translateY(-11px) rotate(44deg);' width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1 39C1.5 32.7511 6.1 17.5173 20.5 6.57333M11.5 4.04L27 0.999998C24.8333 4.88444 20.5 13.16 20.5 15.1867" stroke="black" /> </svg> <p class='twoslash-annotation-text' style="transform: rotate(-3deg)">Adding this to a JS file shows errors in your editor</p> </div> <div class='twoslash-annotation right' style="top: 5.7rem"> <svg style='transform: translateX(1px) translateY(2px) rotate(-60deg);' width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M27 39C26.5 32.7511 21.9 17.5173 7.5 6.57333M16.5 4.04L0.999999 0.999998C3.16667 4.88444 7.5 13.16 7.5 15.1867" stroke="black" /> </svg> <p class='twoslash-annotation-text' style="transform: rotate(3deg)">the param is arr, not orr!</p> </div></div> </div><p>JavaScript with TS Check</p><div class="adopt-step-stepper"><div class="first"></div><div class="yellow-hint-blue"></div><div class=""></div><div class=""></div></div></div></div><div class="adopt-step"><div class="adopt-step-content"><div> <div class='tag-container'><pre class="shiki light-plus twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">js</div><div class='code-container'><code><div class='line'><span style="color: #008000">// @ts-check</span></div><div class='line'> </div><div class='line'><span style="color: #008000">/** </span><span style="color: #0000FF">@param</span><span style="color: #008000"> </span><span style="color: #267F99">{any[]}</span><span style="color: #008000"> </span><span style="color: #001080">arr</span><span style="color: #008000"> */</span></div><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function compact(arr: any[]): any' >compact</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any[]' >arr</data-lsp></span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any[]' >arr</data-lsp></span><span style="color: #000000">.</span><span style="color: #001080"><data-lsp lsp='(property) Array<any>.length: number' >length</data-lsp></span><span style="color: #000000"> > </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any[]' >arr</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-err><data-lsp lsp='any' >trim</data-lsp></data-err></span><span style="color: #000000">(</span><span style="color: #098658">0</span><span style="color: #000000">, </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><span class="error"><span>Property 'trim' does not exist on type 'any[]'.</span><span class="code">2339</span></span><span class="error-behind">Property 'trim' does not exist on type 'any[]'.</span><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: any[]' >arr</data-lsp></span></div><div class='line'><span style="color: #000000"> }</span></div></code></div></pre> <div class='twoslash-annotation left' style="top: 4em"> <svg style='transform: translateX(4px) translateY(-12px) rotate(44deg);' width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1 39C1.5 32.7511 6.1 17.5173 20.5 6.57333M11.5 4.04L27 0.999998C24.8333 4.88444 20.5 13.16 20.5 15.1867" stroke="black" /> </svg> <p class='twoslash-annotation-text' style="transform: rotate(1deg)">Using JSDoc to give type information</p> </div> <div class='twoslash-annotation right' style="top: 7em"> <svg style='transform: translateX(1px) translateY(2px) rotate(-64deg);' width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M27 39C26.5 32.7511 21.9 17.5173 7.5 6.57333M16.5 4.04L0.999999 0.999998C3.16667 4.88444 7.5 13.16 7.5 15.1867" stroke="black" /> </svg> <p class='twoslash-annotation-text' style="transform: rotate(3deg)">Now TS has found a bad call. Arrays have slice, not trim.</p> </div></div> </div><p>JavaScript with JSDoc</p><div class="adopt-step-stepper"><div class="first"></div><div class=""></div><div class="yellow-lot-blue"></div><div class=""></div></div></div></div><div class="adopt-step"><div class="adopt-step-content"><div> <div class='tag-container'><pre class="shiki light-plus twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">ts</div><div class='code-container'><code><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function compact(arr: string[]): string[]' >compact</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) arr: string[]' >arr</data-lsp></span><span style="color: #000000">: </span><span style="color: #267F99">string</span><span style="color: #000000">[]) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-lsp lsp='(parameter) arr: string[]' >arr</data-lsp></span><span style="color: #000000">.</span><span style="color: #001080"><data-lsp lsp='(property) Array<string>.length: number' >length</data-lsp></span><span style="color: #000000"> > </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: string[]' >arr</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Array<string>.slice(start?: number | undefined, end?: number | undefined): string[]' >slice</data-lsp></span><span style="color: #000000">(</span><span style="color: #098658">0</span><span style="color: #000000">, </span><span style="color: #098658">10</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">return</span><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(parameter) arr: string[]' >arr</data-lsp></span></div><div class='line'><span style="color: #000000">}</span></div></code></div></pre> <div class='twoslash-annotation left' style="top: 0.9rem"> <svg style='transform: translateX(-5px) translateY(-5px) rotate(40deg);' width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1 39C1.5 32.7511 6.1 17.5173 20.5 6.57333M11.5 4.04L27 0.999998C24.8333 4.88444 20.5 13.16 20.5 15.1867" stroke="black" /> </svg> <p class='twoslash-annotation-text' style="transform: rotate(-4deg)">TypeScript adds natural syntax for providing types</p> </div></div> </div><p>TypeScript file</p><div class="adopt-step-stepper"><div class="first"></div><div class=""></div><div class=""></div><div class="blue"></div></div></div></div><div id="global-stepper" class="adopt-step-stepper"><div class="first yellow"></div><div class="yellow-hint-blue"></div><div class="yellow-lot-blue"></div><div class="blue"></div></div></div></div></div></div></div></div></div></div><div class="light-grey "><div class="container"><div class=" row"><div class=" col1"><h3 id="describe-your-data">Describe Your Data</h3><p><strong>Describe the shape of objects and functions</strong> in your code.</p><p>Making it possible to see <strong>documentation and issues in your editor</strong>.</p></div><div class=" col1"><div> <pre class="shiki light-plus twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">ts</div><div class='code-container'><code><div class='line'><span style="color: #0000FF">interface</span><span style="color: #000000"> </span><span style="color: #267F99"><data-lsp lsp='interface Account' >Account</data-lsp></span><span style="color: #000000"> {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(property) Account.id: number' >id</data-lsp></span><span style="color: #000000">: </span><span style="color: #267F99">number</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(property) Account.displayName: string' >displayName</data-lsp></span><span style="color: #000000">: </span><span style="color: #267F99">string</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='(property) Account.version: 1' >version</data-lsp></span><span style="color: #000000">: </span><span style="color: #098658">1</span></div><div class='line'><span style="color: #000000">}</span></div><div class='line'> </div><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function welcome(user: Account): void' >welcome</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) user: Account' >user</data-lsp></span><span style="color: #000000">: </span><span style="color: #267F99"><data-lsp lsp='interface Account' >Account</data-lsp></span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) user: Account' >user</data-lsp></span><span style="color: #000000">.</span><span style="color: #001080"><data-lsp lsp='(property) Account.id: number' >id</data-lsp></span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000">}</span></div></code></div></pre> </div></div><div class=" col1"><div> <pre class="shiki light-plus twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">ts</div><div class='code-container'><code><div class='line'><span style="color: #0000FF">type</span><span style="color: #000000"> </span><span style="color: #267F99"><data-lsp lsp='type Result = "pass" | "fail"' >Result</data-lsp></span><span style="color: #000000"> = </span><span style="color: #A31515">"pass"</span><span style="color: #000000"> | </span><span style="color: #A31515">"fail"</span></div><div class='line'> </div><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function verify(result: Result): void' >verify</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) result: Result' >result</data-lsp></span><span style="color: #000000">: </span><span style="color: #267F99"><data-lsp lsp='type Result = "pass" | "fail"' >Result</data-lsp></span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-lsp lsp='(parameter) result: Result' >result</data-lsp></span><span style="color: #000000"> === </span><span style="color: #A31515">"pass"</span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Passed"</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> } </span><span style="color: #AF00DB">else</span><span style="color: #000000"> {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Failed"</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> }</span></div><div class='line'><span style="color: #000000">}</span></div></code></div></pre> </div></div></div></div></div><div class="white via-delete"><div class="container"><h2 id="via-delete-key">TypeScript becomes JavaScript via the delete key.</h2><div class=" row"><div class=" col1"><div> <pre class="shiki typescript-beta-light twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">ts</div><div class='code-container'><code><div class='line'><span style="color: #0000FF">type</span><span style="color: #000000"> </span><span style="color: #1C6277"><data-lsp lsp='type Result = "pass" | "fail"' >Result</data-lsp></span><span style="color: #000000"> = </span><span style="color: #A31515">"pass"</span><span style="color: #000000"> | </span><span style="color: #A31515">"fail"</span></div><div class='line'> </div><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function verify(result: Result): void' >verify</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) result: Result' >result</data-lsp></span><span style="color: #000000">: </span><span style="color: #1C6277"><data-lsp lsp='type Result = "pass" | "fail"' >Result</data-lsp></span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-lsp lsp='(parameter) result: Result' >result</data-lsp></span><span style="color: #000000"> === </span><span style="color: #A31515">"pass"</span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Passed"</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> } </span><span style="color: #AF00DB">else</span><span style="color: #000000"> {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Failed"</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> }</span></div><div class='line'><span style="color: #000000">}</span></div><div class='line'> </div></code></div></pre> </div><p><strong>TypeScript file</strong>.</p></div><div class=" col1"><div> <pre class="shiki typescript-beta-light twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">ts</div><div class='code-container'><code><div class='line highlight'><span style="color: #0000FF">type</span><span style="color: #000000"> </span><span style="color: #1C6277"><data-lsp lsp='type Result = "pass" | "fail"' >Result</data-lsp></span><span style="color: #000000"> = </span><span style="color: #A31515">"pass"</span><span style="color: #000000"> | </span><span style="color: #A31515">"fail"</span></div><div class='line dim'> </div><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function verify(result: Result): void' >verify</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) result: Result' >result</data-lsp></span><span class="highlight" style="color: #000000">: </span><span class="highlight" style="color: #1C6277"><data-lsp lsp='type Result = "pass" | "fail"' >Result</data-lsp></span><span style="color: #000000">) {</span></div><div class='line dim'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-lsp lsp='(parameter) result: Result' >result</data-lsp></span><span style="color: #000000"> === </span><span style="color: #A31515">"pass"</span><span style="color: #000000">) {</span></div><div class='line dim'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Passed"</span><span style="color: #000000">)</span></div><div class='line dim'><span style="color: #000000"> } </span><span style="color: #AF00DB">else</span><span style="color: #000000"> {</span></div><div class='line dim'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Failed"</span><span style="color: #000000">)</span></div><div class='line dim'><span style="color: #000000"> }</span></div><div class='line dim'><span style="color: #000000">}</span></div><div class='line dim'> </div></code></div></pre> </div><p><strong>Types are removed</strong>.</p></div><div class=" col1"><div> <pre class="shiki typescript-beta-light twoslash lsp" style="background-color: #FFFFFF; color: #000000"><div class="language-id">js</div><div class='code-container'><code><div class='line'> </div><div class='line'> </div><div class='line'><span style="color: #0000FF">function</span><span style="color: #000000"> </span><span style="color: #795E26"><data-lsp lsp='function verify(result: any): void' >verify</data-lsp></span><span style="color: #000000">(</span><span style="color: #001080"><data-lsp lsp='(parameter) result: any' >result</data-lsp></span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #AF00DB">if</span><span style="color: #000000"> (</span><span style="color: #001080"><data-lsp lsp='(parameter) result: any' >result</data-lsp></span><span style="color: #000000"> === </span><span style="color: #A31515">"pass"</span><span style="color: #000000">) {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Passed"</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> } </span><span style="color: #AF00DB">else</span><span style="color: #000000"> {</span></div><div class='line'><span style="color: #000000"> </span><span style="color: #001080"><data-lsp lsp='var console: Console' >console</data-lsp></span><span style="color: #000000">.</span><span style="color: #795E26"><data-lsp lsp='(method) Console.log(...data: any[]): void' >log</data-lsp></span><span style="color: #000000">(</span><span style="color: #A31515">"Failed"</span><span style="color: #000000">)</span></div><div class='line'><span style="color: #000000"> }</span></div><div class='line'><span style="color: #000000">}</span></div><div class='line'> </div></code></div></pre> </div><p><strong>JavaScript file</strong>.</p></div></div></div></div><div class="light-grey migrations"><div class="container"><h2 id="migration_title">TypeScript Testimonials</h2><div class="github-bar left"><svg width="438" height="49" viewBox="0 0 438 49" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="221" width="10" height="10" fill="white"></rect><rect x="117" width="10" height="10" fill="white"></rect><rect x="13" width="10" height="10" fill="white"></rect><rect x="325" width="10" height="10" fill="white"></rect><rect x="247" width="10" height="10" fill="white"></rect><rect x="143" width="10" height="10" fill="white"></rect><rect x="39" width="10" height="10" fill="white"></rect><rect x="351" width="10" height="10" fill="white"></rect><rect x="273" width="10" height="10" fill="white"></rect><rect x="169" width="10" height="10" fill="white"></rect><rect x="65" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="377" width="10" height="10" fill="white"></rect><rect x="299" width="10" height="10" fill="white"></rect><rect x="195" width="10" height="10" fill="white"></rect><rect x="91" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="403" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="221" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="117" y="13" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.8" x="13" y="13" width="10" height="10" fill="white"></rect><rect x="325" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="247" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="143" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="39" y="13" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.8" x="351" y="13" width="10" height="10" fill="white"></rect><rect x="273" y="13" width="10" height="10" fill="white"></rect><rect x="169" y="13" width="10" height="10" fill="white"></rect><rect x="65" y="13" width="10" height="10" fill="white"></rect><rect x="377" y="13" width="10" height="10" fill="white"></rect><rect x="299" y="13" width="10" height="10" fill="white"></rect><rect x="195" y="13" width="10" height="10" fill="white"></rect><rect x="91" y="13" width="10" height="10" fill="white"></rect><rect x="403" y="13" width="10" height="10" fill="white"></rect><rect x="221" y="26" width="10" height="10" fill="white"></rect><rect x="117" y="26" width="10" height="10" fill="white"></rect><rect x="13" y="26" width="10" height="10" fill="white"></rect><rect x="325" y="26" width="10" height="10" fill="white"></rect><rect x="247" y="26" width="10" height="10" fill="white"></rect><rect x="143" y="26" width="10" height="10" fill="white"></rect><rect x="39" y="26" width="10" height="10" fill="white"></rect><rect x="351" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="273" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="169" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="65" y="26" width="10" height="10" fill="white"></rect><rect x="377" y="26" width="10" height="10" fill="white"></rect><rect x="299" y="26" width="10" height="10" fill="white"></rect><rect x="195" y="26" width="10" height="10" fill="white"></rect><rect x="91" y="26" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect x="403" y="26" width="10" height="10" fill="white"></rect><rect x="221" y="39" width="10" height="10" fill="white"></rect><rect x="117" y="39" width="10" height="10" fill="white"></rect><rect x="13" y="39" width="10" height="10" fill="white"></rect><rect x="325" y="39" width="10" height="10" fill="white"></rect><rect x="247" y="39" width="10" height="10" fill="white"></rect><rect x="143" y="39" width="10" height="10" fill="white"></rect><rect x="39" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="351" y="39" width="10" height="10" fill="white"></rect><rect x="273" y="39" width="10" height="10" fill="white"></rect><rect x="169" y="39" width="10" height="10" fill="white"></rect><rect x="65" y="39" width="10" height="10" fill="white"></rect><rect x="377" y="39" width="10" height="10" fill="white"></rect><rect x="299" y="39" width="10" height="10" fill="white"></rect><rect x="195" y="39" width="10" height="10" fill="white"></rect><rect x="91" y="39" width="10" height="10" fill="white"></rect><rect x="403" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="234" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="130" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="26" y="39" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.5" x="338" y="39" width="10" height="10" fill="white"></rect><rect x="260" y="39" width="10" height="10" fill="white"></rect><rect x="156" y="39" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect x="52" y="39" width="10" height="10" fill="white"></rect><rect x="208" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.3" x="104" y="39" width="10" height="10" fill="white"></rect><rect y="39" width="10" height="10" fill="white" fill-opacity="0.99"></rect><rect x="364" y="39" width="10" height="10" fill="white"></rect><rect x="286" y="39" width="10" height="10" fill="white"></rect><rect x="182" y="39" width="10" height="10" fill="white"></rect><rect x="78" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="390" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="312" y="39" width="10" height="10" fill="white"></rect><rect x="416" y="39" width="10" height="10" fill="white"></rect><rect x="234" y="26" width="10" height="10" fill="white"></rect><rect x="130" y="26" width="10" height="10" fill="white"></rect><rect x="26" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="338" y="26" width="10" height="10" fill="white"></rect><rect x="260" y="26" width="10" height="10" fill="white"></rect><rect x="156" y="26" width="10" height="10" fill="white"></rect><rect x="52" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="208" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="104" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.9" y="26" width="10" height="10" fill="white"></rect><rect x="364" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.3" x="286" y="26" width="10" height="10" fill="white"></rect><rect x="182" y="26" width="10" height="10" fill="white"></rect><rect x="78" y="26" width="10" height="10" fill="white"></rect><rect x="390" y="26" width="10" height="10" fill="white"></rect><rect x="312" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="416" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="428" y="26" width="10" height="10" fill="white"></rect><rect x="234" y="13" width="10" height="10" fill="white"></rect><rect x="130" y="13" width="10" height="10" fill="white"></rect><rect x="26" y="13" width="10" height="10" fill="white"></rect><rect x="338" y="13" width="10" height="10" fill="white"></rect><rect x="260" y="13" width="10" height="10" fill="white"></rect><rect x="156" y="13" width="10" height="10" fill="white"></rect><rect x="52" y="13" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect x="208" y="13" width="10" height="10" fill="white"></rect><rect x="104" y="13" width="10" height="10" fill="white"></rect><rect y="13" width="10" height="10" fill="white"></rect><rect x="364" y="13" width="10" height="10" fill="white"></rect><rect x="286" y="13" width="10" height="10" fill="white"></rect><rect x="182" y="13" width="10" height="10" fill="white"></rect><rect x="78" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="390" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="312" y="13" width="10" height="10" fill="white"></rect><rect x="416" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.3" x="428" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="234" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="130" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="26" width="10" height="10" fill="white"></rect><rect x="338" width="10" height="10" fill="white"></rect><rect x="260" width="10" height="10" fill="white"></rect><rect x="156" width="10" height="10" fill="white"></rect><rect x="52" width="10" height="10" fill="white"></rect><rect x="208" width="10" height="10" fill="white"></rect><rect x="104" width="10" height="10" fill="white"></rect><rect width="10" height="10" fill="white" fill-opacity="0.99"></rect><rect opacity="0.5" x="364" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="286" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="182" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.6" x="78" width="10" height="10" fill="white"></rect><rect x="390" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="312" width="10" height="10" fill="white"></rect><rect x="416" width="10" height="10" fill="white"></rect></svg></div><div class="github-bar right"><svg width="438" height="49" viewBox="0 0 438 49" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="221" width="10" height="10" fill="white"></rect><rect x="117" width="10" height="10" fill="white"></rect><rect x="13" width="10" height="10" fill="white"></rect><rect x="325" width="10" height="10" fill="white"></rect><rect x="247" width="10" height="10" fill="white"></rect><rect x="143" width="10" height="10" fill="white"></rect><rect x="39" width="10" height="10" fill="white"></rect><rect x="351" width="10" height="10" fill="white"></rect><rect x="273" width="10" height="10" fill="white"></rect><rect x="169" width="10" height="10" fill="white"></rect><rect x="65" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="377" width="10" height="10" fill="white"></rect><rect x="299" width="10" height="10" fill="white"></rect><rect x="195" width="10" height="10" fill="white"></rect><rect x="91" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="403" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="221" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="117" y="13" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.8" x="13" y="13" width="10" height="10" fill="white"></rect><rect x="325" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="247" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="143" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="39" y="13" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.8" x="351" y="13" width="10" height="10" fill="white"></rect><rect x="273" y="13" width="10" height="10" fill="white"></rect><rect x="169" y="13" width="10" height="10" fill="white"></rect><rect x="65" y="13" width="10" height="10" fill="white"></rect><rect x="377" y="13" width="10" height="10" fill="white"></rect><rect x="299" y="13" width="10" height="10" fill="white"></rect><rect x="195" y="13" width="10" height="10" fill="white"></rect><rect x="91" y="13" width="10" height="10" fill="white"></rect><rect x="403" y="13" width="10" height="10" fill="white"></rect><rect x="221" y="26" width="10" height="10" fill="white"></rect><rect x="117" y="26" width="10" height="10" fill="white"></rect><rect x="13" y="26" width="10" height="10" fill="white"></rect><rect x="325" y="26" width="10" height="10" fill="white"></rect><rect x="247" y="26" width="10" height="10" fill="white"></rect><rect x="143" y="26" width="10" height="10" fill="white"></rect><rect x="39" y="26" width="10" height="10" fill="white"></rect><rect x="351" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="273" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="169" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="65" y="26" width="10" height="10" fill="white"></rect><rect x="377" y="26" width="10" height="10" fill="white"></rect><rect x="299" y="26" width="10" height="10" fill="white"></rect><rect x="195" y="26" width="10" height="10" fill="white"></rect><rect x="91" y="26" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect x="403" y="26" width="10" height="10" fill="white"></rect><rect x="221" y="39" width="10" height="10" fill="white"></rect><rect x="117" y="39" width="10" height="10" fill="white"></rect><rect x="13" y="39" width="10" height="10" fill="white"></rect><rect x="325" y="39" width="10" height="10" fill="white"></rect><rect x="247" y="39" width="10" height="10" fill="white"></rect><rect x="143" y="39" width="10" height="10" fill="white"></rect><rect x="39" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="351" y="39" width="10" height="10" fill="white"></rect><rect x="273" y="39" width="10" height="10" fill="white"></rect><rect x="169" y="39" width="10" height="10" fill="white"></rect><rect x="65" y="39" width="10" height="10" fill="white"></rect><rect x="377" y="39" width="10" height="10" fill="white"></rect><rect x="299" y="39" width="10" height="10" fill="white"></rect><rect x="195" y="39" width="10" height="10" fill="white"></rect><rect x="91" y="39" width="10" height="10" fill="white"></rect><rect x="403" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="234" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="130" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="26" y="39" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.5" x="338" y="39" width="10" height="10" fill="white"></rect><rect x="260" y="39" width="10" height="10" fill="white"></rect><rect x="156" y="39" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect x="52" y="39" width="10" height="10" fill="white"></rect><rect x="208" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.3" x="104" y="39" width="10" height="10" fill="white"></rect><rect x="364" y="39" width="10" height="10" fill="white"></rect><rect x="286" y="39" width="10" height="10" fill="white"></rect><rect x="182" y="39" width="10" height="10" fill="white"></rect><rect x="78" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="390" y="39" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="312" y="39" width="10" height="10" fill="white"></rect><rect x="416" y="39" width="10" height="10" fill="white"></rect><rect x="234" y="26" width="10" height="10" fill="white"></rect><rect x="130" y="26" width="10" height="10" fill="white"></rect><rect x="26" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="338" y="26" width="10" height="10" fill="white"></rect><rect x="260" y="26" width="10" height="10" fill="white"></rect><rect x="156" y="26" width="10" height="10" fill="white"></rect><rect x="52" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="208" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="104" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.9" y="26" width="10" height="10" fill="white"></rect><rect x="364" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.3" x="286" y="26" width="10" height="10" fill="white"></rect><rect x="182" y="26" width="10" height="10" fill="white"></rect><rect x="78" y="26" width="10" height="10" fill="white"></rect><rect x="390" y="26" width="10" height="10" fill="white"></rect><rect x="312" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="416" y="26" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="428" y="26" width="10" height="10" fill="white"></rect><rect x="234" y="13" width="10" height="10" fill="white"></rect><rect x="130" y="13" width="10" height="10" fill="white"></rect><rect x="26" y="13" width="10" height="10" fill="white"></rect><rect x="338" y="13" width="10" height="10" fill="white"></rect><rect x="260" y="13" width="10" height="10" fill="white"></rect><rect x="156" y="13" width="10" height="10" fill="white"></rect><rect x="52" y="13" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect x="208" y="13" width="10" height="10" fill="white"></rect><rect x="104" y="13" width="10" height="10" fill="white"></rect><rect y="13" width="10" height="10" fill="white"></rect><rect x="364" y="13" width="10" height="10" fill="white"></rect><rect x="286" y="13" width="10" height="10" fill="white"></rect><rect x="182" y="13" width="10" height="10" fill="white"></rect><rect x="78" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="390" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.9" x="312" y="13" width="10" height="10" fill="white"></rect><rect x="416" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.3" x="428" y="13" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="234" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="130" width="10" height="10" fill="white"></rect><rect opacity="0.8" x="26" width="10" height="10" fill="white"></rect><rect x="338" width="10" height="10" fill="white"></rect><rect x="260" width="10" height="10" fill="white"></rect><rect x="156" width="10" height="10" fill="white"></rect><rect x="52" width="10" height="10" fill="white"></rect><rect x="208" width="10" height="10" fill="white"></rect><rect x="104" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="364" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="286" width="10" height="10" fill="white"></rect><rect opacity="0.6" x="182" width="10" height="10" fill="white" fill-opacity="0.4"></rect><rect opacity="0.6" x="78" width="10" height="10" fill="white"></rect><rect x="390" width="10" height="10" fill="white"></rect><rect opacity="0.5" x="312" width="10" height="10" fill="white"></rect><rect x="416" width="10" height="10" fill="white"></rect><rect x="428" width="10" height="10" fill="white" fill-opacity="0.99"></rect><rect x="428" y="39" width="10" height="10" fill="white" fill-opacity="0.99"></rect></svg></div><div id="m-stories"><div class="slides"><div class="row reverse"><div class="slack small_full_width"><div class="illustration"><div class="fg"><p><strong>First</strong>, we were surprised by the number of small bugs we found when converting our code.</p><p><strong>Second</strong>, we underestimated how powerful the editor integration is.</p><p>TypeScript was such a boon to our stability and sanity that we started using it for all new code within days of starting the conversion.</p></div><div class="bg"><svg aria-label="slack testimonial" name="slack testimonial" width="780" height="380" viewBox="0 0 780 380" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity="0.6" d="M0.5 11C0.5 5.201 5.20101 0.5 11 0.5H769C774.799 0.5 779.5 5.20101 779.5 11V379.5H0.5V11Z" stroke="black"></path><rect opacity="0.6" x="21.5" y="33.5" width="39" height="39" rx="10.5" stroke="black"></rect><rect opacity="0.6" x="21.5" y="92.5" width="39" height="39" rx="10.5" stroke="black"></rect><rect opacity="0.6" x="21.5" y="153.5" width="39" height="39" rx="10.5" stroke="black"></rect><path opacity="0.6" d="M77.4997 1L77.5 379.5" stroke="black"></path><path opacity="0.6" d="M229.499 1L229.5 379.5" stroke="black"></path><path d="M306.355 14.9277L301.478 34.5273H295.018L301.214 14.9277H306.355ZM292.996 14.9277L288.25 34.5273H281.658L287.811 14.9277H292.996Z" fill="black"></path><path d="M733.355 347.928L728.478 367.527H722.018L728.214 347.928H733.355ZM719.996 347.928L715.25 367.527H708.658L714.811 347.928H719.996Z" fill="black"></path></svg></div></div><div class="copy"><svg aria-label="slack logo" name="slack logo" width="220" height="56" viewBox="0 0 220 56" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M70.5269 44.1002L73.2567 37.7606C76.2068 39.9619 80.1254 41.1065 84.0001 41.1065C86.8621 41.1065 88.6673 40.0059 88.6673 38.3329C88.6233 33.6663 71.5396 37.3204 71.4075 25.6097C71.3634 19.6663 76.6471 15.0876 84.1322 15.0876C88.5792 15.0876 93.0263 16.1883 96.1965 18.6977L93.6427 25.1694C90.7367 23.3204 87.1262 21.9996 83.6919 21.9996C81.3583 21.9996 79.8172 23.1002 79.8172 24.509C79.8613 29.0877 97.0771 26.5782 97.2532 37.7606C97.2532 43.8361 92.1017 48.1065 84.7046 48.1065C79.2889 48.1065 74.3135 46.8298 70.5269 44.1002Z" fill="black"></path><path d="M175.275 35.4713C173.91 37.8487 171.356 39.4776 168.406 39.4776C164.047 39.4776 160.525 35.9556 160.525 31.5971C160.525 27.2386 164.047 23.7166 168.406 23.7166C171.356 23.7166 173.91 25.3455 175.275 27.7229L182.804 23.5405C179.986 18.5216 174.57 15.0876 168.406 15.0876C159.292 15.0876 151.895 22.4839 151.895 31.5971C151.895 40.7103 159.292 48.1065 168.406 48.1065C174.614 48.1065 179.986 44.7166 182.804 39.6537L175.275 35.4713Z" fill="black"></path><path d="M110.462 1.396H101.04V47.4903H110.462V1.396Z" fill="black"></path><path d="M186.502 1.396V47.4903H195.925V33.6664L207.109 47.4903H219.173L204.951 31.0689L218.116 15.7482H206.58L195.925 28.4715V1.396H186.502Z" fill="black"></path><path d="M138.465 35.5594C137.101 37.8046 134.283 39.4776 131.112 39.4776C126.753 39.4776 123.231 35.9556 123.231 31.5971C123.231 27.2386 126.753 23.7166 131.112 23.7166C134.283 23.7166 137.101 25.4776 138.465 27.7669V35.5594ZM138.465 15.748V19.4902C136.924 16.8927 133.094 15.0876 129.087 15.0876C120.809 15.0876 114.293 22.3958 114.293 31.5531C114.293 40.7103 120.809 48.1065 129.087 48.1065C133.094 48.1065 136.924 46.3015 138.465 43.704V47.4461H147.888V15.748H138.465Z" fill="black"></path><path d="M12.275 35.5157C12.275 38.7295 9.67719 41.327 6.46299 41.327C3.24878 41.327 0.651001 38.7295 0.651001 35.5157C0.651001 32.3018 3.24878 29.7043 6.46299 29.7043H12.275V35.5157Z" fill="black"></path><path d="M15.181 35.5157C15.181 32.3018 17.7788 29.7043 20.993 29.7043C24.2072 29.7043 26.805 32.3018 26.805 35.5157V50.044C26.805 53.2578 24.2072 55.8553 20.993 55.8553C17.7788 55.8553 15.181 53.2578 15.181 50.044V35.5157Z" fill="black"></path><path d="M20.9929 12.1822C17.7787 12.1822 15.1809 9.58473 15.1809 6.37089C15.1809 3.15706 17.7787 0.55957 20.9929 0.55957C24.2071 0.55957 26.8049 3.15706 26.8049 6.37089V12.1822H20.9929Z" fill="black"></path><path d="M20.9929 15.1318C24.2071 15.1318 26.8049 17.7293 26.8049 20.9432C26.8049 24.157 24.2071 26.7545 20.9929 26.7545H6.41892C3.20472 26.7545 0.606934 24.157 0.606934 20.9432C0.606934 17.7293 3.20472 15.1318 6.41892 15.1318H20.9929Z" fill="black"></path><path d="M44.2849 20.9432C44.2849 17.7293 46.8827 15.1318 50.0969 15.1318C53.3111 15.1318 55.9089 17.7293 55.9089 20.9432C55.9089 24.157 53.3111 26.7545 50.0969 26.7545H44.2849V20.9432Z" fill="black"></path><path d="M41.379 20.9432C41.379 24.1571 38.7812 26.7545 35.567 26.7545C32.3528 26.7545 29.755 24.1571 29.755 20.9432V6.37089C29.755 3.15706 32.3528 0.55957 35.567 0.55957C38.7812 0.55957 41.379 3.15706 41.379 6.37089V20.9432Z" fill="black"></path><path d="M35.567 44.2327C38.7812 44.2327 41.379 46.8301 41.379 50.044C41.379 53.2578 38.7812 55.8553 35.567 55.8553C32.3528 55.8553 29.755 53.2578 29.755 50.044V44.2327H35.567Z" fill="black"></path><path d="M35.567 41.327C32.3528 41.327 29.755 38.7295 29.755 35.5157C29.755 32.3018 32.3528 29.7043 35.567 29.7043H50.141C53.3552 29.7043 55.953 32.3018 55.953 35.5157C55.953 38.7295 53.3552 41.327 50.141 41.327H35.567Z" fill="black"></path></svg><p>Felix Rieseberg at Slack covered the transition of their desktop app from JavaScript to TypeScript in their blog</p><a class="migration-button" href="https://slack.engineering/typescript-at-slack-a81307fa288d" target="_blank">Read</a></div></div></div></div><div class="controls"><a role="button" href="#m-stories" class="button left" aria-label="prev"><svg width="11" height="15" viewBox="0 0 11 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10.5 0.5L10.5 14.5L5.68248e-07 8L10.5 0.5Z" fill="#08446E"></path></svg></a><a role="button" href="#m-stories" class="button right" aria-label="next"><svg width="11" height="15" viewBox="0 0 11 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 14.5V0.5L10.5 7L0 14.5Z" fill="#08446E"></path></svg></a></div></div></div></div><div class="dark-green show-only-small"><div class="container"><h3>Open Source with TypeScript</h3><div class="row reverse"><div class="oss"><div class="icons"><a href="https://angular.io/" target="_blank"><svg aria-label="angular logo" name="angular logo" width="110" height="118" viewBox="0 0 110 118" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M55 72.5856H40.5752L33.7424 89.6384H21.0696H21.0112L55 13.4264V13.4848V0.52002L0.629639 19.9088L8.92244 91.7992L55 117.32V72.5856Z" fill="white"></path><path d="M45.072 62.0736H55V38.188L45.072 62.0736Z" fill="white"></path><path d="M55 72.5856H69.4248L76.2576 89.6384H88.9304H88.9888L55 13.4264V13.4848V0.52002L109.37 19.9088L101.078 91.7992L55 117.32V72.5856Z" fill="#43914B"></path><path opacity="0.9" d="M64.928 62.0736H55V38.188L64.928 62.0736Z" fill="white"></path></svg><p>Angular</p></a><a href="https://vuejs.org/" target="_blank"><svg aria-label="vue logo" name="vue logo" width="127" height="110" viewBox="0 0 127 110" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M101.287 0H126.609L63.3043 109.2L0 0H25.0052H48.4278L63.3043 25.3217L77.8643 0H101.287Z" fill="white" fill-opacity="0.24"></path><path d="M0 0L63.3043 109.2L126.609 0H101.287L63.3043 65.52L25.0052 0H0Z" fill="white"></path></svg><p>Vue</p></a><a href="https://jestjs.io/" target="_blank"><svg aria-label="jest logo" name="jest logo" width="111" height="122" viewBox="0 0 111 122" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0)"><path d="M104.051 60.01C104.051 53.7458 98.9423 48.6677 92.6404 48.6677C92.235 48.6677 91.8352 48.6892 91.4411 48.7302L107.113 2.78308H40.5116L56.1617 48.6905C55.9308 48.676 55.6994 48.6683 55.468 48.6677C49.1666 48.6677 44.058 53.7458 44.058 60.01C44.058 65.0734 47.3962 69.3602 52.004 70.8187C49.5702 75.0089 46.5082 78.7827 43.0316 82.0429C38.3042 86.4762 32.8938 89.8376 27.0424 91.909C20.0755 88.3515 16.7853 80.4391 19.7537 73.5021C20.0893 72.719 20.4314 71.9246 20.7588 71.1342C25.8058 69.9631 29.5668 65.4652 29.5668 60.0914C29.5668 53.8272 24.4582 48.7491 18.1564 48.7491C11.8541 48.7491 6.74548 53.8272 6.74548 60.0914C6.74548 63.933 8.66847 67.3254 11.6074 69.3774C8.78294 75.7696 4.63171 82.4588 3.3383 90.2117C1.7882 99.5037 3.33353 109.367 11.4179 114.937C30.2463 127.908 50.6841 106.895 72.2333 101.613C80.0423 99.6985 88.6154 100.007 95.4956 96.0457C100.663 93.0709 104.07 88.1411 105.036 82.6062C105.991 77.1385 104.598 71.6945 101.397 67.2801C103.115 65.2426 104.055 62.6682 104.051 60.01ZM66.878 60.0501L66.8793 60.01C66.8793 55.8965 64.6758 52.2942 61.3787 50.3059L73.835 25.2685L86.313 50.5714C83.2488 52.6049 81.2295 56.0728 81.2295 60.01C81.2295 60.0927 81.2339 60.1742 81.236 60.2565L66.878 60.0501Z" fill="#43914B"></path><path d="M106.837 60.0093C106.837 53.1197 101.843 47.3709 95.2653 46.143L111 0.0123291H36.6239L52.3825 46.2365C46.0334 47.6412 41.2708 53.2813 41.2708 60.0093C41.2708 65.0619 43.9569 69.4999 47.9828 71.9937C46.0464 74.8612 43.7501 77.5597 41.1186 80.0272C36.9457 83.9407 32.2962 86.9086 27.2839 88.861C22.2356 85.7087 20.1014 79.7643 22.3179 74.5853L22.4914 74.1802L22.817 73.4182C28.3618 71.4963 32.353 66.2497 32.353 60.0907C32.353 52.309 25.984 45.9784 18.1554 45.9784C10.3269 45.9784 3.95829 52.309 3.95829 60.0907C3.95829 64.0184 5.5821 67.5751 8.1958 70.1361C7.70846 71.1631 7.21371 72.1866 6.71161 73.2066C4.32164 78.086 1.61298 83.6166 0.588402 89.758C-1.44645 101.955 1.83542 111.705 9.82958 117.212C14.6806 120.554 19.6067 121.869 24.564 121.869C33.8988 121.868 43.3412 117.207 52.5767 112.647C59.2285 109.363 66.1061 105.967 72.9001 104.302C75.428 103.682 78.0291 103.309 80.7828 102.914C86.2435 102.131 91.8907 101.322 96.8926 98.4422C102.69 95.1041 106.659 89.5045 107.781 83.0796C108.745 77.564 107.585 72.0403 104.757 67.3553C106.12 65.1447 106.84 62.6019 106.837 60.0093V60.0093ZM101.264 60.0093C101.264 64.7361 97.3951 68.5819 92.6395 68.5819C87.8847 68.5819 84.0157 64.7361 84.0157 60.0093C84.0157 55.2824 87.8847 51.437 92.6395 51.437C97.3951 51.437 101.264 55.2824 101.264 60.0093V60.0093ZM103.225 5.55244L89.3307 46.2878C88.7329 46.43 88.1451 46.6112 87.5712 46.83L73.8453 18.9967L60.0796 46.6654C59.4799 46.4591 58.8669 46.2935 58.2447 46.1697L44.3978 5.55244H103.225V5.55244ZM55.4679 51.437C60.2231 51.437 64.0917 55.2824 64.0917 60.0093C64.0917 64.7361 60.2231 68.5819 55.4679 68.5819C50.7131 68.5819 46.8442 64.7361 46.8442 60.0093C46.8442 55.2824 50.7131 51.437 55.4679 51.437V51.437ZM18.1554 51.5185C22.9111 51.5185 26.7796 55.3639 26.7796 60.0907C26.7796 64.8175 22.9111 68.6634 18.1554 68.6634C13.4007 68.6634 9.53171 64.8175 9.53171 60.0907C9.53171 55.3639 13.4007 51.5185 18.1554 51.5185V51.5185ZM102.29 82.1318C101.451 86.9366 98.4652 91.1341 94.0989 93.6478C90.0288 95.9911 85.1513 96.6906 79.9872 97.4307C77.2209 97.8272 74.36 98.2375 71.5655 98.9228C64.1762 100.734 57.0189 104.268 50.0974 107.685C36.2463 114.524 24.2839 120.429 13.0048 112.659C4.74266 106.967 5.12423 96.4355 6.0868 90.6643C6.97871 85.3178 9.39035 80.3935 11.7227 75.6314C12.1195 74.8219 12.5129 74.0107 12.9029 73.1979C14.0789 73.6658 15.3131 73.9738 16.572 74.1134C14.198 81.9021 17.9317 90.3704 25.7681 94.3723L26.8403 94.9201L27.9763 94.5179C34.1715 92.325 39.8798 88.8054 44.9433 84.0571C48.2165 80.9879 51.0292 77.592 53.342 73.9634C54.0457 74.0689 54.7563 74.1219 55.4679 74.122C63.2965 74.122 69.6655 67.7914 69.6655 60.0093C69.6655 55.8242 67.8214 52.0607 64.9007 49.4738L73.8232 31.5389L82.8363 49.8156C80.132 52.387 78.4423 56.0044 78.4423 60.0093C78.4423 67.7914 84.8109 74.122 92.6395 74.122C95.5353 74.1246 98.3618 73.2416 100.736 71.5929C102.331 74.8396 102.926 78.4928 102.29 82.1318V82.1318Z" fill="white"></path></g><defs><clipPath id="clip0"><rect width="111" height="122" fill="white"></rect></clipPath></defs></svg><p>Jest</p></a><a href="https://redux.js.org/" target="_blank"><svg aria-label="redux logo" name="redux logo" width="123" height="118" viewBox="0 0 123 118" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M85.3359 82.024C89.8599 81.556 93.2919 77.656 93.1359 72.976C92.9799 68.296 89.0799 64.552 84.3999 64.552H84.0879C79.2519 64.708 75.5079 68.764 75.6639 73.6C75.8199 75.94 76.7559 77.968 78.1599 79.372C72.8559 89.824 64.7439 97.468 52.5759 103.864C44.3079 108.232 35.7279 109.792 27.1479 108.7C20.1279 107.764 14.6679 104.644 11.2359 99.496C6.24395 91.852 5.77594 83.584 9.98794 75.316C12.9519 69.388 17.6319 65.02 20.5959 62.836C19.9719 60.808 19.0359 57.376 18.5679 54.88C-4.05206 71.26 -1.71206 93.412 5.15194 103.864C10.2999 111.664 20.7519 116.5 32.2959 116.5C35.4159 116.5 38.5359 116.188 41.6559 115.408C61.6239 111.508 76.7559 99.652 85.3359 82.024V82.024Z" fill="white"></path><path d="M112.792 62.68C100.936 48.796 83.4639 41.152 63.4959 41.152H60.9999C59.5959 38.344 56.6319 36.472 53.3559 36.472H53.0439C48.2079 36.628 44.4639 40.684 44.6199 45.52C44.7759 50.2 48.6759 53.944 53.3559 53.944H53.6679C57.0999 53.788 60.0639 51.604 61.3119 48.64H64.1199C75.9759 48.64 87.2079 52.072 97.3479 58.78C105.148 63.928 110.764 70.636 113.884 78.748C116.536 85.3 116.38 91.696 113.572 97.156C109.204 105.424 101.872 109.948 92.1999 109.948C85.9599 109.948 80.0319 108.076 76.9119 106.672C75.1959 108.232 72.0759 110.728 69.8919 112.288C76.5999 115.408 83.4639 117.124 90.0159 117.124C104.992 117.124 116.068 108.856 120.28 100.588C124.804 91.54 124.492 75.94 112.792 62.68Z" fill="white"></path><path d="M33.544 84.676C33.7 89.356 37.6 93.1 42.28 93.1H42.592C47.428 92.944 51.172 88.888 51.016 84.052C50.86 79.372 46.96 75.628 42.28 75.628H41.968C41.656 75.628 41.188 75.628 40.876 75.784C34.48 65.176 31.828 53.632 32.764 41.152C33.388 31.792 36.508 23.68 41.968 16.972C46.492 11.2 55.228 8.39205 61.156 8.23605C77.692 7.92405 84.712 28.516 85.18 36.784C87.208 37.252 90.64 38.344 92.98 39.124C91.108 13.852 75.508 0.748047 60.532 0.748047C46.492 0.748047 33.544 10.888 28.396 25.864C21.22 45.832 25.9 65.02 34.636 80.152C33.856 81.244 33.388 82.96 33.544 84.676V84.676Z" fill="white"></path></svg><p>Redux</p></a><a href="https://ionicframework.com/" target="_blank"><svg aria-label="ionic logo" name="ionic logo" width="113" height="113" viewBox="0 0 113 113" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M56.4894 30.7695C51.3978 30.7695 46.4206 32.2794 42.1871 35.1081C37.9535 37.9368 34.6539 41.9574 32.7055 46.6614C30.757 51.3654 30.2472 56.5416 31.2405 61.5354C32.2338 66.5291 34.6857 71.1162 38.286 74.7165C41.8863 78.3168 46.4733 80.7686 51.4671 81.7619C56.4608 82.7552 61.637 82.2454 66.341 80.297C71.045 78.3485 75.0656 75.0489 77.8943 70.8154C80.7231 66.5819 82.2329 61.6046 82.2329 56.5131C82.2248 49.6879 79.5099 43.1447 74.6838 38.3186C69.8577 33.4925 63.3145 30.7777 56.4894 30.7695V30.7695Z" fill="white"></path><path d="M93.4526 33.0518C99.9291 33.0518 105.179 27.8015 105.179 21.325C105.179 14.8485 99.9291 9.59827 93.4526 9.59827C86.9761 9.59827 81.7258 14.8485 81.7258 21.325C81.7258 27.8015 86.9761 33.0518 93.4526 33.0518Z" fill="white"></path><path d="M107.892 33.1133L107.4 32.0374L106.632 32.9288C104.709 35.1103 102.278 36.7838 99.554 37.8009L98.7855 38.0775L99.0929 38.846C103.234 48.8056 103.759 59.9007 100.575 70.2064C97.3906 80.5121 90.6994 89.378 81.6618 95.266C72.6243 101.154 61.8107 103.692 51.0972 102.441C40.3837 101.189 30.4464 96.2266 23.0094 88.4141C15.5723 80.6016 11.1049 70.4321 10.3821 59.67C9.6593 48.9079 12.7268 38.2323 19.0524 29.4955C25.378 20.7587 34.5624 14.5119 45.0124 11.839C55.4623 9.16607 66.5182 10.2357 76.2619 14.8623L76.9842 15.2081L77.2993 14.4396C78.4477 11.7685 80.2373 9.42197 82.5095 7.60796L83.4316 6.83949L82.3788 6.29388C74.3808 2.13696 65.4954 -0.022405 56.4816 0.000175283C44.2777 0.00192774 32.4025 3.95581 22.6333 11.2701C12.8641 18.5844 5.72631 28.8656 2.28814 40.5752C-1.15003 52.2848 -0.703655 64.793 3.56046 76.2277C7.82458 87.6625 15.6771 97.4088 25.9428 104.008C36.2086 110.607 48.3354 113.705 60.5084 112.837C72.6814 111.968 84.2459 107.181 93.4712 99.1919C102.696 91.2026 109.086 80.4404 111.684 68.5163C114.283 56.5921 112.949 44.1472 107.884 33.0441L107.892 33.1133Z" fill="white"></path></svg><p>Ionic</p></a><a href="https://probot.github.io/" target="_blank"><svg aria-label="probot logo" name="probot logo" width="138" height="123" viewBox="0 0 138 123" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M95.1843 92.598L106.251 99.7108L114.223 86.2754L120.084 92.9931L110.598 108.341L105.33 108.736L93.8682 101.556L95.1843 92.598Z" fill="white"></path><path d="M77.3435 77.6095H61.5342V84.1296H77.3435V77.6095Z" fill="white"></path><path d="M69.4387 4.01086L73.4661 20.8526H65.3164L69.4387 4.01086Z" fill="white"></path><path d="M43.8158 92.598L32.7492 99.7108L24.7773 86.2754L18.916 92.9931L28.4016 108.341L33.6701 108.736L45.1319 101.556L43.8158 92.598Z" fill="white"></path><path d="M14.3036 79.5578C14.3036 79.5578 10.8769 81.664 8.50548 74.0255C5.88903 65.5888 0.339939 71.7099 1.06322 77.8388C1.7865 83.9677 6.79411 85.742 11.2721 84.3669C15.7501 82.9917 14.3036 79.5578 14.3036 79.5578Z" fill="white"></path><path d="M13.446 65.8574C13.6825 65.1807 14.13 64.5978 14.7227 64.1944C15.3154 63.791 16.0219 63.5886 16.7383 63.6169C19.3746 63.6169 25.7615 66.5806 25.7615 71.9152C25.7615 77.2499 20.8251 78.8345 20.8251 78.8345H16.5447C16.5447 78.8345 19.4417 77.3843 17.3351 73.2351C15.2285 69.0859 13.5132 67.5052 13.45 66.1894" fill="white"></path><path d="M10.2525 89.0217C9.13403 85.0701 10.964 80.6285 14.8886 78.4472C18.8133 76.2659 23.5838 77.0562 26.3504 80.1108L10.2525 89.0217Z" fill="#43914B"></path><path d="M89.7261 83.1141H49.1514C45.9492 83.1141 43.3533 85.7095 43.3533 88.9111V116.308C43.3533 119.509 45.9492 122.105 49.1514 122.105H89.7261C92.9283 122.105 95.5242 119.509 95.5242 116.308V88.9111C95.5242 85.7095 92.9283 83.1141 89.7261 83.1141Z" fill="white"></path><path d="M101.668 20H38.1695C33.6576 20 30 23.6569 30 28.168V71.5013C30 76.0123 33.6576 79.6692 38.1695 79.6692H101.668C106.18 79.6692 109.837 76.0123 109.837 71.5013V28.168C109.837 23.6569 106.18 20 101.668 20Z" fill="white"></path><path d="M76.2922 65.4783H62.7198C60.7378 65.4783 59.1311 67.0847 59.1311 69.0663V69.0703C59.1311 71.0519 60.7378 72.6583 62.7198 72.6583H76.2922C78.2742 72.6583 79.8809 71.0519 79.8809 69.0703V69.0663C79.8809 67.0847 78.2742 65.4783 76.2922 65.4783Z" fill="#43914B"></path><path d="M27.2358 77.8387C28.5505 80.3569 28.8205 83.2914 27.9872 86.0071C27.1539 88.7227 25.2844 91.001 22.7833 92.3487C20.2823 93.6964 17.3511 94.005 14.6241 93.2078C11.8972 92.4106 9.594 90.5717 8.21313 88.0892L27.2358 77.8387Z" fill="white"></path><path d="M32.682 100.272L33.6543 108.736C33.6543 108.736 32.8954 109.527 30.773 109.527C28.6506 109.527 28.4016 108.341 28.4016 108.341L32.682 100.272Z" fill="#43914B"></path><path d="M19.497 88.1286C20.3832 88.1286 21.1016 87.4103 21.1016 86.5243C21.1016 85.6382 20.3832 84.9199 19.497 84.9199C18.6108 84.9199 17.8923 85.6382 17.8923 86.5243C17.8923 87.4103 18.6108 88.1286 19.497 88.1286Z" fill="#086E12"></path><path d="M34.6659 75.6733C35.5521 75.6733 36.2706 74.955 36.2706 74.0689C36.2706 73.1829 35.5521 72.4646 34.6659 72.4646C33.7797 72.4646 33.0613 73.1829 33.0613 74.0689C33.0613 74.955 33.7797 75.6733 34.6659 75.6733Z" fill="#086E12"></path><path d="M103.8 75.6733C104.687 75.6733 105.405 74.955 105.405 74.0689C105.405 73.1829 104.687 72.4646 103.8 72.4646C102.914 72.4646 102.196 73.1829 102.196 74.0689C102.196 74.955 102.914 75.6733 103.8 75.6733Z" fill="#086E12"></path><path d="M34.6659 27.0684C35.5521 27.0684 36.2706 26.3502 36.2706 25.4641C36.2706 24.578 35.5521 23.8597 34.6659 23.8597C33.7797 23.8597 33.0613 24.578 33.0613 25.4641C33.0613 26.3502 33.7797 27.0684 34.6659 27.0684Z" fill="#086E12"></path><path d="M103.8 27.0684C104.687 27.0684 105.405 26.3502 105.405 25.4641C105.405 24.578 104.687 23.8597 103.8 23.8597C102.914 23.8597 102.196 24.578 102.196 25.4641C102.196 26.3502 102.914 27.0684 103.8 27.0684Z" fill="#086E12"></path><path d="M48.0724 89.7331C48.9586 89.7331 49.6771 89.0148 49.6771 88.1288C49.6771 87.2427 48.9586 86.5244 48.0724 86.5244C47.1862 86.5244 46.4678 87.2427 46.4678 88.1288C46.4678 89.0148 47.1862 89.7331 48.0724 89.7331Z" fill="#086E12"></path><path d="M48.0724 119.421C48.9586 119.421 49.6771 118.703 49.6771 117.817C49.6771 116.931 48.9586 116.213 48.0724 116.213C47.1862 116.213 46.4678 116.931 46.4678 117.817C46.4678 118.703 47.1862 119.421 48.0724 119.421Z" fill="#086E12"></path><path d="M91.1056 89.7331C91.9919 89.7331 92.7103 89.0148 92.7103 88.1288C92.7103 87.2427 91.9919 86.5244 91.1056 86.5244C90.2194 86.5244 89.501 87.2427 89.501 88.1288C89.501 89.0148 90.2194 89.7331 91.1056 89.7331Z" fill="#086E12"></path><path d="M91.6047 119.209C92.4909 119.209 93.2093 118.49 93.2093 117.604C93.2093 116.718 92.4909 116 91.6047 116C90.7184 116 90 116.718 90 117.604C90 118.49 90.7184 119.209 91.6047 119.209Z" fill="#086E12"></path><path d="M84.0803 90H54.9197C52.7549 90 51 91.7203 51 93.8424V111.158C51 113.28 52.7549 115 54.9197 115H84.0803C86.2451 115 88 113.28 88 111.158V93.8424C88 91.7203 86.2451 90 84.0803 90Z" fill="#43914B"></path><path d="M42.3653 88.3184V100.568L36.2708 92.2344C36.8778 91.124 37.7539 90.1837 38.8187 89.4995C39.8834 88.8154 41.1028 88.4092 42.3653 88.3184Z" fill="white"></path><path d="M124.692 79.5578C124.692 79.5578 128.119 81.664 130.49 74.0255C133.107 65.5888 138.66 71.7099 137.933 77.8388C137.205 83.9677 132.202 85.742 127.724 84.3669C123.246 82.9917 124.692 79.5578 124.692 79.5578Z" fill="white"></path><path d="M125.562 65.8574C125.326 65.1807 124.878 64.5978 124.285 64.1944C123.693 63.791 122.986 63.5886 122.27 63.6169C119.634 63.6169 113.247 66.5806 113.247 71.9152C113.247 77.2499 118.187 78.8306 118.187 78.8306H122.467C122.467 78.8306 119.57 77.3803 121.677 73.2311C123.784 69.0819 125.499 67.5013 125.562 66.1854" fill="white"></path><path d="M128.724 89.0217C129.842 85.0701 128.012 80.6285 124.088 78.4472C120.163 76.2659 115.393 77.0562 112.626 80.1108L128.724 89.0217Z" fill="#43914B"></path><path d="M111.76 77.8387C110.446 80.3569 110.176 83.2914 111.009 86.0071C111.842 88.7227 113.712 91.001 116.213 92.3487C118.714 93.6964 121.645 94.005 124.372 93.2078C127.099 92.4106 129.402 90.5717 130.783 88.0892L111.76 77.8387Z" fill="white"></path><path d="M106.298 100.272L105.326 108.736C105.326 108.736 106.085 109.527 108.207 109.527C110.33 109.527 110.579 108.341 110.579 108.341L106.298 100.272Z" fill="#43914B"></path><path d="M119.503 88.1286C120.389 88.1286 121.108 87.4103 121.108 86.5243C121.108 85.6382 120.389 84.9199 119.503 84.9199C118.617 84.9199 117.898 85.6382 117.898 86.5243C117.898 87.4103 118.617 88.1286 119.503 88.1286Z" fill="#086E12"></path><path d="M96.6309 88.3184V100.568L102.725 92.2383C102.119 91.1272 101.243 90.1861 100.178 89.5012C99.1134 88.8164 97.8937 88.4096 96.6309 88.3184V88.3184Z" fill="white"></path><path d="M54.2205 43.0847C55.4331 43.0832 56.6189 43.4412 57.6279 44.1135C58.6369 44.7859 59.4239 45.7423 59.8892 46.8618C60.3545 47.9814 60.4772 49.2138 60.2419 50.4031C60.0066 51.5924 59.4238 52.6852 58.5672 53.5433C57.7106 54.4014 56.6187 54.9862 55.4296 55.2238C54.2405 55.4614 53.0077 55.341 51.8871 54.878C50.7664 54.4149 49.8083 53.63 49.1339 52.6224C48.4595 51.6149 48.0991 50.43 48.0983 49.2176C48.0983 47.5921 48.7441 46.0332 49.8938 44.8838C51.0434 43.7344 52.6026 43.0887 54.2284 43.0887L54.2205 43.0847ZM54.2284 34C51.2177 33.9984 48.2742 34.8896 45.7702 36.5608C43.2662 38.232 41.3141 40.6081 40.1609 43.3886C39.0077 46.1691 38.7051 49.2291 39.2915 52.1816C39.8779 55.134 41.3269 57.8463 43.4552 59.9753C45.5835 62.1043 48.2955 63.5545 51.2482 64.1423C54.2009 64.7301 57.2616 64.4292 60.0433 63.2776C62.8249 62.1261 65.2025 60.1756 66.8753 57.6729C68.5481 55.1702 69.4409 52.2277 69.4409 49.2176C69.4367 45.183 67.8318 41.3147 64.9783 38.4618C62.1249 35.6088 58.2559 34.0042 54.2205 34H54.2284Z" fill="#086E12"></path><path d="M87.2205 43.0847C88.4331 43.0832 89.6189 43.4412 90.6279 44.1135C91.6369 44.7859 92.4239 45.7423 92.8892 46.8618C93.3545 47.9814 93.4772 49.2138 93.2419 50.4031C93.0066 51.5924 92.4238 52.6852 91.5672 53.5433C90.7106 54.4014 89.6187 54.9862 88.4296 55.2238C87.2405 55.4614 86.0077 55.341 84.8871 54.878C83.7664 54.4149 82.8083 53.63 82.1339 52.6224C81.4595 51.6149 81.0991 50.43 81.0983 49.2176C81.0983 47.5921 81.7441 46.0332 82.8938 44.8838C84.0434 43.7344 85.6026 43.0887 87.2284 43.0887L87.2205 43.0847ZM87.2284 34C84.2177 33.9984 81.2742 34.8896 78.7702 36.5608C76.2662 38.232 74.3141 40.6081 73.1609 43.3886C72.0077 46.1691 71.7051 49.2291 72.2915 52.1816C72.8779 55.134 74.3269 57.8463 76.4552 59.9753C78.5835 62.1043 81.2955 63.5545 84.2482 64.1423C87.2009 64.7301 90.2616 64.4292 93.0433 63.2776C95.8249 62.1261 98.2025 60.1756 99.8753 57.6729C101.548 55.1702 102.441 52.2277 102.441 49.2176C102.437 45.183 100.832 41.3147 97.9783 38.4618C95.1249 35.6088 91.2559 34.0042 87.2205 34H87.2284Z" fill="#086E12"></path><path d="M69.4387 11.594C72.6409 11.594 75.2368 8.9986 75.2368 5.797C75.2368 2.59541 72.6409 0 69.4387 0C66.2365 0 63.6406 2.59541 63.6406 5.797C63.6406 8.9986 66.2365 11.594 69.4387 11.594Z" fill="white"></path><path d="M50.9299 103.386H54.7518L59.4867 96.0083L63.7197 103.386L66.5456 98.399L69.4743 103.386H74.7112L77.5055 108.906L82.1455 98.9522L84.426 103.386H87.7539" stroke="#086E12" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></path><path d="M84.3904 90.3259C85.2465 90.3269 86.0672 90.6674 86.6726 91.2726C87.2779 91.8779 87.6184 92.6984 87.6195 93.5543V111.665C87.6184 112.52 87.2779 113.341 86.6726 113.946C86.0672 114.551 85.2465 114.892 84.3904 114.893H54.487C53.6309 114.892 52.8102 114.551 52.2049 113.946C51.5995 113.341 51.259 112.52 51.2579 111.665V93.5543C51.259 92.6984 51.5995 91.8779 52.2049 91.2726C52.8102 90.6674 53.6309 90.3269 54.487 90.3259H84.3944H84.3904ZM84.3944 88.7452H54.487C53.2113 88.7452 51.9879 89.2519 51.0858 90.1538C50.1838 91.0557 49.677 92.2789 49.677 93.5543V111.665C49.677 112.94 50.1838 114.163 51.0858 115.065C51.9879 115.967 53.2113 116.474 54.487 116.474H84.3944C85.6694 116.473 86.8918 115.965 87.793 115.064C88.6942 114.162 89.2004 112.939 89.2004 111.665V93.5543C89.2004 92.2789 88.6937 91.0557 87.7916 90.1538C86.8896 89.2519 85.6661 88.7452 84.3904 88.7452H84.3944Z" fill="#086E12"></path></svg><p>Probot</p></a><a href="https://deno.land/" target="_blank"><svg aria-label="deno logo" name="deno logo" width="108" height="108" viewBox="0 0 108 108" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M49.7482 0.0277328C49.4959 0.0542953 48.6857 0.147264 47.9553 0.21367C37.5693 1.30273 27.3428 5.69883 19.0021 12.6848C17.4615 13.9598 13.9553 17.466 12.6803 19.0066C5.77402 27.2543 1.73652 36.5113 0.249023 47.4684C-0.0830078 49.8988 -0.0830078 58.1066 0.249023 60.5371C1.73652 71.4941 5.77402 80.7512 12.6803 88.9988C13.9553 90.5395 17.4615 94.0457 19.0021 95.3207C27.2498 102.227 36.5068 106.264 47.4639 107.752C49.8943 108.084 58.1021 108.084 60.5326 107.752C71.4896 106.264 80.7467 102.227 88.9943 95.3207C90.5349 94.0457 94.0412 90.5395 95.3162 88.9988C102.222 80.7512 106.26 71.4941 107.747 60.5371C108.079 58.1066 108.079 49.8988 107.747 47.4684C106.26 36.5113 102.222 27.2543 95.3162 19.0066C94.0412 17.466 90.5349 13.9598 88.9943 12.6848C80.7732 5.80508 71.4232 1.71445 60.6123 0.266795C59.4435 0.10742 57.7435 0.041014 54.5959 0.0144515C52.192 -0.012111 50.0006 0.00117027 49.7482 0.0277328ZM50.4123 5.76523C50.4123 7.31914 50.5185 10.6926 50.6646 13.8934C50.7443 15.4605 50.8373 17.7051 50.8771 18.8738C51.0232 23.0176 51.4615 33.8949 51.5279 34.8645L51.5943 35.834L50.9967 35.7676C50.6646 35.741 50.3592 35.6613 50.306 35.6215C50.2662 35.5684 50.1732 34.652 50.1201 33.5762C49.881 28.848 49.0975 10.5066 49.0178 7.82383L48.9381 4.87539L49.31 4.82226C49.5092 4.7957 49.8412 4.75586 50.0537 4.74258L50.4123 4.7293V5.76523ZM63.1224 5.44648C63.1357 5.45976 63.1756 9.4707 63.2154 14.3582C63.2685 19.259 63.3349 23.6551 63.3748 24.1332C63.4146 24.6246 63.4014 25.0496 63.3349 25.0762C63.2818 25.116 62.9498 25.116 62.6178 25.0762L62.0068 25.023L61.9139 21.1582C61.8607 19.0199 61.7943 16.6559 61.7678 15.8855C61.6615 13.5348 61.5685 5.55273 61.6482 5.35351C61.7014 5.20742 61.8474 5.19414 62.4053 5.28711C62.7904 5.3668 63.1092 5.4332 63.1224 5.44648ZM32.4029 9.8957C32.4826 10.0152 33.1068 17.3332 33.8771 26.909C34.1295 30.1629 34.3818 33.1379 34.4217 33.5098C34.4881 34.1871 34.4748 34.2137 34.0498 34.4793C33.8107 34.6254 33.5717 34.7449 33.5185 34.7449C33.4787 34.7449 33.399 34.3996 33.3592 33.9746C33.1732 32.248 32.456 23.9074 31.9514 17.8777C31.6592 14.3316 31.3935 11.1574 31.3537 10.8121C31.2873 10.2277 31.3006 10.1746 31.6459 9.98867C32.0709 9.76289 32.31 9.72305 32.4029 9.8957ZM68.9662 12.5652C69.3381 12.698 69.3779 12.7645 69.4576 13.5215C69.5904 14.8496 69.5506 21.198 69.4045 21.198C69.0193 21.198 68.2224 20.7465 68.156 20.4941C68.1162 20.3348 68.0764 18.4488 68.0764 16.3105C68.0764 11.9941 68.0232 12.2465 68.9662 12.5652ZM44.4357 13.1895C44.4357 13.548 44.5287 15.527 44.635 17.6121C44.7412 19.6973 44.8607 22.3402 44.9139 23.4824C45.0068 25.7934 45.0334 25.7137 44.1435 25.7668C43.7053 25.7801 43.7053 25.7801 43.6787 25.116C43.6521 24.7441 43.5857 23.5887 43.506 22.5262C43.4396 21.4637 43.2803 19.166 43.174 17.4129C43.0678 15.6598 42.935 13.9199 42.8951 13.548C42.8154 12.884 42.8287 12.8574 43.1873 12.7246C43.3998 12.6449 43.7717 12.5785 44.0107 12.5785C44.4357 12.5652 44.4357 12.5652 44.4357 13.1895ZM81.2779 15.009L81.7295 15.1949L81.8224 16.9746C81.8623 17.9441 81.8889 20.0426 81.8623 21.623L81.8224 24.5184L81.2646 24.2395L80.7068 23.9738L80.667 19.5645C80.6404 17.134 80.6537 15.0754 80.6803 14.9824C80.7334 14.7832 80.7334 14.7832 81.2779 15.009ZM57.0264 16.7488C57.106 16.8285 57.292 23.2699 57.3053 26.5371L57.3185 28.5027L56.6943 28.4098C56.3357 28.3699 56.0435 28.3301 56.0303 28.3168C55.9904 28.2902 55.592 18.4488 55.592 17.4926V16.5098L56.2693 16.5895C56.6545 16.6426 56.9865 16.709 57.0264 16.7488ZM87.6131 17.6918C87.7724 17.8777 87.799 20.7863 87.8388 36.8301C87.8787 55.2512 87.8787 55.7293 87.6396 55.7293C87.4935 55.7293 87.2943 55.6496 87.1748 55.5566C86.9756 55.4105 86.949 53.8035 86.8826 38.0652C86.8295 28.5293 86.7631 19.8699 86.7232 18.8207L86.6435 16.9082L87.0287 17.1871C87.2545 17.3465 87.5068 17.5723 87.6131 17.6918ZM75.6998 20.4145C75.7662 20.4676 75.8326 21.2246 75.8459 22.0879C75.9123 25.023 75.9256 43.0191 75.8592 43.0723C75.8326 43.0988 75.5935 43.0324 75.3279 42.9262L74.8498 42.727V31.4246V20.1355L75.2217 20.2152C75.4209 20.2684 75.6334 20.348 75.6998 20.4145ZM39.0435 21.1582C39.0834 21.5168 39.1498 22.327 39.1896 22.991C39.2295 23.6418 39.3225 25.1293 39.4021 26.2848C39.5615 28.6223 39.535 28.7684 38.7779 28.7684C38.3795 28.7684 38.3264 28.7285 38.2732 28.3301C38.1404 27.5465 37.6756 21.0121 37.742 20.9059C37.8084 20.8129 38.499 20.5738 38.8178 20.5473C38.8975 20.534 39.0037 20.8129 39.0435 21.1582ZM17.0764 24.5449C17.2225 25.9527 17.5146 28.9012 17.7271 31.0926C17.9529 33.284 18.1389 35.1434 18.1389 35.223C18.1389 35.3824 17.1162 35.8871 17.01 35.7809C16.9436 35.7145 15.6154 23.9605 15.6154 23.4293C15.6154 23.1105 16.6381 21.7691 16.7709 21.9152C16.8107 21.9418 16.9436 23.1238 17.0764 24.5449ZM69.1521 25.9395L69.5373 26.1652L69.5506 29.034C69.5639 30.6012 69.5904 32.3543 69.5904 32.9254C69.617 34.1207 69.4709 34.3199 68.7537 34.0676L68.342 33.9215V32.7793C68.342 32.1418 68.3021 30.2957 68.249 28.6621L68.1693 25.7137H68.4748C68.6342 25.7137 68.9396 25.8199 69.1521 25.9395ZM22.9068 31.0926C23.1459 33.6426 23.531 37.9457 23.7834 40.6551L24.235 45.5691L23.717 46.0871L23.2123 46.6051L23.1193 45.5559C23.0662 44.9715 22.8006 42.2621 22.5217 39.5262C22.2428 36.7902 21.8443 32.8191 21.6451 30.7074L21.2732 26.8824L21.7912 26.4043C22.2561 25.966 22.3092 25.9527 22.4021 26.1918C22.4553 26.3246 22.681 28.5293 22.9068 31.0926ZM12.9592 32.6996C13.2514 35.316 14.0217 42.2754 14.6857 48.159C15.3498 54.0426 15.974 59.7137 16.0936 60.7762C16.1998 61.8387 16.3857 63.4457 16.492 64.3621C16.6779 65.916 16.6779 66.0223 16.4654 66.1816C16.1467 66.4207 16.0139 66.3941 16.0139 66.1152C16.0139 65.9957 15.8943 64.9863 15.7482 63.8973C15.5092 62.0777 15.1107 58.9965 14.2209 52.077C14.035 50.6824 13.6764 47.9066 13.424 45.9012C13.1584 43.8957 12.7732 40.9074 12.5607 39.2605C12.3482 37.6137 11.9896 34.798 11.7639 32.9785C11.5248 31.1723 11.3787 29.5652 11.4186 29.3926C11.5115 29.034 12.2951 27.7855 12.3748 27.8652C12.4014 27.9051 12.667 30.0699 12.9592 32.6996ZM8.89512 38.4238C9.09433 40.0176 9.46621 42.9262 9.71855 44.9051C9.9709 46.8707 10.2896 49.3277 10.4357 50.3504L10.6881 52.2098L10.4092 52.4488C10.2498 52.5816 10.0904 52.6348 10.0373 52.5816C9.98418 52.5285 9.87793 51.9973 9.79824 51.4129C9.71855 50.8285 9.22715 47.4152 8.6959 43.8426L7.75293 37.3348L8.0584 36.4316C8.21777 35.9402 8.39043 35.5418 8.43027 35.5418C8.4834 35.5418 8.68262 36.8434 8.89512 38.4238ZM81.8092 36.684C81.9951 36.8699 82.0217 37.6934 82.0217 43.7895V50.6824H81.6498C80.8396 50.6824 80.8529 50.8816 80.7998 43.3379L80.7599 36.4715H81.1849C81.4107 36.4715 81.7029 36.5645 81.8092 36.684ZM52.7365 39.0613C55.7381 39.5129 58.3545 40.3496 60.9443 41.6777C62.6178 42.541 63.4146 43.1387 65.274 44.9184C68.0365 47.5613 69.7365 49.8723 71.3303 53.1395C73.6545 57.8941 74.5576 62.1043 75.6998 73.3934C76.2178 78.4535 76.8951 87.6309 77.0412 91.3895C77.081 92.4785 77.174 94.2715 77.2537 95.3738C77.3998 97.7113 77.5724 97.3926 75.5139 98.3887C72.6584 99.7699 69.9092 100.726 66.2834 101.616C61.8474 102.705 58.9787 103.05 54.5959 103.064L51.4084 103.077L51.435 101.55C51.435 100.713 51.5146 98.7605 51.5943 97.2332C51.9928 89.8355 51.9131 80.4988 51.3951 75.3191C51.1029 72.3441 50.5318 68.7316 50.2131 67.9348C50.1467 67.7621 50.4521 67.616 51.767 67.1645C54.1709 66.3277 56.256 65.2785 56.5748 64.7605C57.1459 63.7777 56.1232 62.3699 54.8217 62.3699C54.5959 62.3699 53.9185 62.609 53.2943 62.8879C50.3193 64.2559 44.356 65.8629 40.9162 66.2215C38.5389 66.4738 34.8467 66.3277 32.2834 65.8629C30.8889 65.6105 28.392 64.6676 26.3068 63.5918C23.9029 62.3434 22.4287 60.6832 21.9904 58.7176C21.7514 57.6551 21.8178 55.5301 22.1232 54.3348C22.4553 53.0199 23.385 51.1074 24.235 49.9918C28.0201 45.0113 35.8295 40.6949 43.8381 39.1809C46.3881 38.7027 50.0006 38.6496 52.7365 39.0613ZM93.7092 39.473C94.1873 39.6723 94.2404 39.7254 94.2404 40.177C94.267 43.8027 94.1873 52.0902 94.1209 52.4355C94.1076 52.5551 93.417 52.5684 93.1248 52.4621C92.9388 52.3957 92.9123 51.6785 92.9123 45.8215C92.9123 41.6246 92.9654 39.2605 93.0451 39.2605C93.1115 39.2605 93.417 39.3535 93.7092 39.473ZM99.5131 46.7645L99.9912 46.9637L99.8982 57.9605C99.792 71.9723 99.7787 72.384 99.274 73.5926C98.4506 75.5715 98.4904 75.9699 98.5701 67.284C98.5967 62.941 98.6631 58.5449 98.6896 57.5223C98.7162 56.4996 98.7428 53.6176 98.756 51.1074C98.756 48.0793 98.7959 46.5652 98.8888 46.5652C98.9685 46.5652 99.2474 46.6582 99.5131 46.7645ZM19.6396 50.0715C19.7193 51.1473 19.6928 51.2535 19.3076 52.1035L18.8826 53.0066L18.7232 51.6785C18.4709 49.5535 18.4709 49.4605 18.9756 49.1418C19.2014 48.9824 19.4404 48.8762 19.4803 48.9027C19.5201 48.9293 19.5998 49.4605 19.6396 50.0715ZM11.4318 58.0801C11.5514 59.1691 12.4811 66.3941 12.9592 69.9402C13.6764 75.4254 13.7295 76.209 13.4107 75.877C13.3709 75.8371 13.0654 73.991 12.7467 71.773C10.6748 57.4559 10.6881 57.5488 10.8607 57.4426C11.2193 57.2035 11.3389 57.3363 11.4318 58.0801ZM20.9943 64.1629C21.074 64.4949 21.4592 68.0941 21.4592 68.5324C21.4592 68.9043 20.9811 69.2496 20.7686 69.0371C20.7021 68.9707 20.5295 67.8418 20.3967 66.5402C20.2506 65.2254 20.1045 63.8574 20.0646 63.4988L19.985 62.8348L20.4498 63.366C20.7154 63.6582 20.9545 64.0168 20.9943 64.1629ZM31.7123 69.1699C31.8584 69.3027 31.9514 69.834 32.0709 71.2684C32.2701 73.8582 32.2967 73.659 31.7521 73.659C31.1943 73.659 31.2076 73.6988 31.0217 71.3613C30.8357 68.984 30.8357 69.0105 31.1943 69.0105C31.367 69.0105 31.5928 69.0902 31.7123 69.1699ZM42.231 69.3691C42.2576 69.502 42.324 70.2988 42.3771 71.1355C42.417 71.9723 42.5365 73.8582 42.6428 75.3191C43.0146 80.6848 43.0279 81.3621 42.8021 81.3621C42.5498 81.3621 42.5232 81.1629 42.231 77.3777C42.1248 75.8105 41.9256 73.3402 41.7928 71.8926C41.6732 70.4449 41.5935 69.2363 41.6334 69.2098C41.7795 69.0504 42.1646 69.1699 42.231 69.3691ZM17.2623 71.9191C17.342 72.0387 17.8467 76.2887 18.4709 82.0926C18.6568 83.8457 18.8428 85.5324 18.8826 85.8512L18.949 86.4223L18.617 86.2098C18.3646 86.0371 18.2717 85.8645 18.2717 85.559C18.2717 84.7223 17.7006 79.2105 17.2623 75.8371C17.01 73.9246 16.8107 72.2379 16.8107 72.0785C16.8107 71.7996 17.1295 71.6934 17.2623 71.9191ZM93.9084 77.4707L93.8154 83.0223L93.4834 83.5137C92.7263 84.6293 92.7662 84.8418 92.806 78.6262L92.8326 72.9285L93.324 72.4238C93.5896 72.1582 93.8553 71.9324 93.9084 71.9324C93.9482 71.9324 93.9482 74.4293 93.9084 77.4707ZM81.6232 86.2762C81.6896 93.9926 81.6764 94.5902 81.4639 94.8293C81.331 94.9754 81.2115 95.0684 81.1717 95.0285C81.0787 94.9223 80.9459 78.0949 81.0521 78.002C81.1053 77.9488 81.2381 77.9223 81.3576 77.9355C81.5303 77.9754 81.5701 78.9184 81.6232 86.2762ZM38.2467 80.9902C38.3396 81.8137 38.6717 85.7582 38.8045 87.6176C38.8842 88.866 38.8842 88.9059 38.592 88.9988C38.4326 89.052 38.2467 89.0387 38.1935 88.9723C38.1006 88.8793 37.8084 85.9309 37.4498 81.3887L37.3568 80.2996H37.7685C38.1537 80.2996 38.1803 80.3262 38.2467 80.9902ZM27.8076 85.6387C27.9006 85.7316 27.967 86.0637 27.967 86.3957C27.967 86.741 28.1264 88.534 28.299 90.3934C28.8037 95.4801 28.8435 96.1707 28.6178 96.0379C28.2725 95.8387 27.967 95.5332 28.0334 95.4535C28.06 95.4004 28.0068 94.7363 27.9006 93.9793C27.8076 93.209 27.6881 91.9605 27.635 91.1902C27.5818 90.4199 27.4623 89.0121 27.356 88.0691C27.1037 85.7449 27.117 85.4793 27.4092 85.4793C27.542 85.4793 27.7146 85.5457 27.8076 85.6387ZM34.0896 94.577C34.1295 94.8691 34.2092 95.9582 34.2623 96.9941C34.3553 98.9863 34.3154 99.1324 33.7709 98.7207C33.6115 98.6012 33.5053 98.0965 33.3459 96.5824C33.067 93.8465 33.0537 93.9527 33.5717 94.0059C33.9568 94.0457 34.01 94.0988 34.0896 94.577Z" fill="white"></path><path d="M29.3483 45.4231C27.9671 46.0208 27.8608 47.8935 29.1624 48.5575C30.1054 49.0356 31.0616 48.8099 31.553 47.9864C32.4827 46.4724 30.9687 44.7192 29.3483 45.4231Z" fill="white"></path><path d="M38.353 46.698C37.078 47.4816 37.078 49.3675 38.353 50.1511C39.6147 50.9081 41.2483 49.912 41.2483 48.398C41.2483 46.937 39.5749 45.9542 38.353 46.698Z" fill="white"></path></svg><p>Deno</p></a><a href="https://github.com/vercel/vercel" target="_blank"><svg aria-label="vercel logo" name="vercel logo" width="113" height="100" viewBox="0 0 113 100" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M56.5 0L113 100H0L56.5 0Z" fill="url(#paint0_linear)"></path><defs><linearGradient id="paint0_linear" x1="222.127" y1="228.815" x2="80.0337" y2="32.929" gradientUnits="userSpaceOnUse"><stop stop-color="#43914B"></stop><stop offset="1" stop-color="white"></stop></linearGradient></defs></svg><p>Vercel</p></a><a href="https://yarnpkg.com/" target="_blank"><svg aria-label="yarn logo" name="yarn logo" width="103" height="109" viewBox="0 0 103 109" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M102.923 79.6215C102.341 75.0771 98.4611 71.9408 93.4817 72.0048C86.0448 72.1008 79.8043 75.9091 75.6655 78.4374C74.0488 79.4294 72.6585 80.1655 71.4621 80.7096C71.7208 76.9972 71.4944 72.1328 69.5544 66.7884C67.194 60.3878 64.0252 56.4515 61.7619 54.1793C64.3809 50.4029 67.97 44.8985 69.6514 36.3857C71.1064 29.1211 70.6537 17.8241 67.3233 11.4876C66.6443 10.2075 65.5126 9.27939 64.0899 8.89535C63.5079 8.73534 62.4085 8.41531 60.2421 9.02337C57.0734 2.33479 55.9417 1.63073 55.0687 1.08668C53.258 -0.0654194 51.1239 -0.321442 49.1192 0.414622C46.4355 1.3747 44.1397 3.93493 41.9734 8.47932C41.65 9.15138 41.359 9.79143 41.1003 10.4315C36.9939 10.7195 30.5271 12.1916 25.0626 18.0481C24.3836 18.7842 23.0579 19.3283 21.6675 19.8403H21.6999C18.8545 20.8004 17.5288 23.1046 15.9767 27.2649C13.778 33.0894 16.0414 38.8179 18.2724 42.5303C15.233 45.2185 11.1913 49.5069 9.05721 54.5313C6.40581 60.7398 6.1148 66.8204 6.2118 70.1166C3.94841 72.4848 0.456326 76.9332 0.0683168 81.9257C-0.449029 88.9023 2.10537 93.6387 3.23706 95.3668C3.5604 95.8789 3.91608 96.2949 4.30409 96.7109C4.17475 97.575 4.14242 98.5031 4.33642 99.4632C4.75677 101.703 6.17947 103.528 8.34586 104.68C12.614 106.92 18.5634 107.88 23.1549 105.608C24.8039 107.336 27.811 109 33.2755 109H33.5988C34.9892 109 52.6436 108.072 57.7848 106.824C60.0805 106.28 61.6649 105.32 62.6995 104.456C65.9976 103.432 75.1159 100.359 83.7167 94.8548C89.7956 90.9504 91.8973 90.1184 96.4241 89.0303C100.724 87.9742 103.505 84.0378 102.923 79.6215ZM95.26 84.3259C90.0866 85.542 87.4675 86.6621 81.0653 90.7904C71.0418 97.191 60.1128 100.167 60.1128 100.167C60.1128 100.167 59.2075 101.511 56.5884 102.119C52.0616 103.208 35.0215 104.136 33.4695 104.168C29.2984 104.2 26.744 103.111 26.0326 101.415C23.8662 96.2949 29.1367 94.0547 29.1367 94.0547C29.1367 94.0547 27.9727 93.3507 27.2937 92.7106C26.6793 92.1025 26.0326 90.8864 25.8386 91.3345C25.0303 93.2866 24.6099 98.0551 22.4435 100.199C19.4688 103.176 13.8427 102.183 10.5122 100.455C6.85849 98.5351 10.7709 94.0227 10.7709 94.0227C10.7709 94.0227 8.79853 95.1748 7.21416 92.8066C5.79146 90.6304 4.46576 86.9181 4.82144 82.3417C5.20944 77.1252 11.0943 72.0688 11.0943 72.0688C11.0943 72.0688 10.0596 64.3561 13.4547 56.4515C16.5264 49.2508 24.8039 43.4583 24.8039 43.4583C24.8039 43.4583 17.8521 35.8417 20.4388 28.9931C22.1202 24.5127 22.7992 24.5447 23.3489 24.3527C25.2889 23.6166 27.1643 22.8166 28.5547 21.3124C35.5065 13.8878 44.3661 15.2959 44.3661 15.2959C44.3661 15.2959 48.5695 2.65482 52.4496 5.11903C53.646 5.88709 57.9464 15.3599 57.9464 15.3599C57.9464 15.3599 62.5379 12.7037 63.0552 13.6958C65.836 19.0402 66.1593 29.2491 64.9306 35.4577C62.8612 45.6985 57.6878 51.203 55.6184 54.6593C55.1334 55.4594 61.1798 57.9876 64.9953 68.4525C68.5197 78.0213 65.3833 86.054 65.933 86.9501C66.03 87.1101 66.0623 87.1741 66.0623 87.1741C66.0623 87.1741 70.1041 87.4941 78.2199 82.5337C82.5527 79.8775 87.6938 76.9012 93.5463 76.8372C99.2048 76.7412 99.4958 83.3338 95.26 84.3259Z" fill="white"></path></svg><p>Yarn</p></a><a href="https://github.com/desktop/desktop/" target="_blank"><svg aria-label="gitHub desktop logo" name="gitHub desktop logo" width="98" height="96" viewBox="0 0 98 96" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M49 0C21.9275 0 0 21.9275 0 49C0 70.6825 14.0262 88.9963 33.5037 95.4888C35.9537 95.9175 36.8725 94.4475 36.8725 93.1613C36.8725 91.9975 36.8113 88.1388 36.8113 84.035C24.5 86.3013 21.315 81.0337 20.335 78.2775C19.7837 76.8687 17.395 72.52 15.3125 71.3562C13.5975 70.4375 11.1475 68.1712 15.2513 68.11C19.11 68.0487 21.8663 71.6625 22.785 73.1325C27.195 80.5437 34.2388 78.4613 37.0563 77.175C37.485 73.99 38.7712 71.8462 40.18 70.6212C29.2775 69.3962 17.885 65.17 17.885 46.4275C17.885 41.0987 19.7838 36.6887 22.9075 33.2587C22.4175 32.0337 20.7025 27.0112 23.3975 20.2737C23.3975 20.2737 27.5013 18.9875 36.8725 25.2963C40.7925 24.1938 44.9575 23.6425 49.1225 23.6425C53.2875 23.6425 57.4525 24.1938 61.3725 25.2963C70.7438 18.9263 74.8475 20.2737 74.8475 20.2737C77.5425 27.0112 75.8275 32.0337 75.3375 33.2587C78.4613 36.6887 80.36 41.0375 80.36 46.4275C80.36 65.2312 68.9063 69.3962 58.0038 70.6212C59.78 72.1525 61.3113 75.0925 61.3113 79.6863C61.3113 86.24 61.25 91.5075 61.25 93.1613C61.25 94.4475 62.1688 95.9788 64.6188 95.4888C83.9738 88.9963 98 70.6212 98 49C98 21.9275 76.0725 0 49 0Z" fill="white"></path></svg><p>GitHub<br/>Desktop</p></a></div></div></div></div></div><div class="white "><div class="container"><h2>Loved by Developers<!-- --> </h2><div class=" row"><div class=" col1"><img src="/images/index/stack-overflow.svg" alt="Image of the stack overflow logo, and a graph showing TypeScript as the 2nd most popular language"/><div style="width:60%;margin-top:20px"><p>Voted <strong>2nd most loved programming language</strong> in the <a href="https://insights.stackoverflow.com/survey/2020#most-loved-dreaded-and-wanted" target="_blank">Stack Overflow 2020 Developer survey</a></p></div></div><div style="background-color:black;width:1px"></div><div class=" col1"><div class=" row"><div style="width:160px;text-align:center"><img src="/images/index/state-of-js.svg" alt="Logo of the State of JS survey"/></div><div style="flex:1"><p>TypeScript was <strong>used by 78%</strong> of the <a href="https://2020.stateofjs.com/en-US/technologies/javascript-flavors/" target="_blank">2020 State of JS</a> respondents, with <strong>93% saying they would use it again</strong>.</p><p>TypeScript was given the award for <strong>“Most Adopted Technology”</strong> based on year-on-year growth.</p></div></div></div></div></div></div><div class="blue get-started-section"><div class="container"><h2 id="get_started_blue">Get Started</h2><div class=" row"><div class=" col1"><a class="get-started short handbook" href="/docs/handbook/intro.html"><div><div class="fluid-button-title">Handbook</div><div class="fluid-button-subtitle">Learn the language</div></div><div><svg width="14" height="23" viewBox="0 0 14 23" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 2L11 11.5L2 21" stroke="black" stroke-width="4"></path></svg></div></a></div><div class=" col1"><a to="/play" class="get-started short playground" href="/play"><div><div class="fluid-button-title">Playground</div><div class="fluid-button-subtitle">Try in your browser</div></div><div><svg width="14" height="23" viewBox="0 0 14 23" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 2L11 11.5L2 21" stroke="black" stroke-width="4"></path></svg></div></a></div><div class=" col1"><a class="get-started short download" href="/download/"><div><div class="fluid-button-title">Download</div><div class="fluid-button-subtitle">Install TypeScript</div></div><div><svg width="14" height="23" viewBox="0 0 14 23" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 2L11 11.5L2 21" stroke="black" stroke-width="4"></path></svg></div></a></div></div></div></div></div></main><footer id="site-footer" role="contentinfo"><section id="community"><article id="logos"><svg fill="none" height="26" viewBox="0 0 26 26" width="26" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m.975 0h24.05c.5385 0 .975.436522.975.975v24.05c0 .5385-.4365.975-.975.975h-24.05c-.538478 0-.975-.4365-.975-.975v-24.05c0-.538478.436522-.975.975-.975zm13.4782 13.8324v-2.1324h-9.2532v2.1324h3.30357v9.4946h2.62983v-9.4946zm1.0485 9.2439c.4241.2162.9257.3784 1.5048.4865.579.1081 1.1893.1622 1.8309.1622.6253 0 1.2193-.0595 1.782-.1784.5628-.1189 1.0562-.3149 1.4803-.5879s.7598-.6297 1.0072-1.0703.3711-.9852.3711-1.6339c0-.4703-.0707-.8824-.212-1.2365-.1414-.3541-.3453-.669-.6117-.9447s-.5859-.523-.9583-.7419c-.3725-.2189-.7925-.4257-1.2601-.6203-.3425-.1406-.6497-.2771-.9216-.4095-.2718-.1324-.5029-.2676-.6932-.4054-.1903-.1379-.3371-.2838-.4404-.4379-.1033-.154-.155-.3284-.155-.523 0-.1784.0463-.3392.1387-.4824.0924-.1433.2229-.2663.3915-.369.1685-.1027.3751-.1824.6198-.2392.2447-.0567.5165-.0851.8156-.0851.2174 0 .4472.0162.6891.0486.242.0325.4853.0825.7299.15.2447.0676.4826.1527.7137.2555.2311.1027.4445.2216.6402.3567v-2.4244c-.3969-.1514-.8305-.2636-1.3008-.3365-.4704-.073-1.01-.1095-1.6189-.1095-.6199 0-1.2071.0662-1.7617.1987-.5546.1324-1.0425.3392-1.4639.6203s-.7544.6392-.9991 1.0743c-.2447.4352-.367.9555-.367 1.5609 0 .7731.2243 1.4326.6729 1.9785.4485.546 1.1295 1.0082 2.043 1.3866.3588.146.6932.2892 1.0031.4298.3099.1405.5777.2865.8033.4378.2257.1514.4037.3162.5342.4946s.1958.3811.1958.6082c0 .1676-.0408.323-.1224.4662-.0815.1433-.2052.2676-.371.373-.1659.1054-.3725.1879-.6199.2473-.2474.0595-.5369.0892-.8686.0892-.5654 0-1.1254-.0986-1.68-.2959s-1.0684-.4933-1.5415-.8879z" fill="#fff" fill-rule="evenodd"></path></svg><svg class="typescript-long" fill="none" height="25" viewBox="0 0 105 25" width="105" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m52.8777 17.6304v-1.4159c1.2926.8186 2.6019 1.228 3.9281 1.228 1.41 0 2.4802-.2903 3.2104-.8709s1.0953-1.393 1.0953-2.4372c0-.9189-.2455-1.6519-.7365-2.1991-.4735-.5276-1.4796-1.2397-3.0184-2.13631l-.1732-.10038c-1.8297-1.06092-2.988-1.94849-3.4748-2.66273-.4868-.71425-.7302-1.53916-.7302-2.47478 0-1.26976.4952-2.34737 1.4856-3.23287.9904-.88549 2.3124-1.32823 3.9659-1.32823 1.0743 0 2.1486.179602 3.223.538812v1.303168c-1.0576-.47616-2.1865-.71423-3.3867-.71423-1.2254 0-2.197.30908-2.9146.92725-.7176.61818-1.0764 1.40341-1.0764 2.35574 0 .9189.2455 1.64984.7365 2.19283.491.543 1.5506 1.28229 3.1789 2.2179 1.6871.95233 2.8097 1.79813 3.3678 2.53743.5582.7393.8373 1.5893.8373 2.55 0 1.3783-.4805 2.5019-1.4416 3.3707-.961.8687-2.3186 1.3031-4.0728 1.3031-.6211 0-1.3366-.096-2.1466-.2882-.8099-.1921-1.4289-.4135-1.857-.6641zm-44.74534-14.7957h5.16264v-2.532528h-13.295v2.532528h5.15008v15.4459h2.98228zm9.92154 17.5014 5.8166-14.89726h-2.9461l-3.223 9.35466c-.0764.2868-.1363.5202-.1798.7005l-.0468.2024h-.0629c-.0672-.2867-.1206-.5105-.1604-.6715l-.0663-.2565-3.0719-9.32956h-3.2356l5.1241 12.81566-.8687 2.1067c-.5372 1.07-1.3513 1.6051-2.4425 1.6051-.3777 0-.7973-.0753-1.259-.2258v2.4202c.4113.1087.9233.163 1.536.163 2.1823 0 3.8777-1.3292 5.0863-3.9876zm10.5978-3.9583h-.0503v7.7948h-2.918v-18.73516h2.918v2.25574h.0503c.9978-1.70435 2.4567-2.55651 4.3769-2.55651 1.635 0 2.9095.57229 3.8235 1.71687.9139 1.14459 1.3709 2.68182 1.3709 4.61176 0 2.1388-.5157 3.8515-1.547 5.1381s-2.44 1.9299-4.226 1.9299c-1.6434 0-2.9095-.7185-3.7983-2.1555zm-.0978-3.4018v-1.583c0-1.0968.3163-2.0109.9488-2.74216.6325-.73125 1.4681-1.09688 2.5069-1.09688.9802 0 1.7572.35524 2.331 1.06572.5739.71049.8608 1.69312.8608 2.94792 0 1.4957-.3078 2.6611-.9236 3.4963-.6157.8351-1.4639 1.2527-2.5446 1.2527-.9215 0-1.6818-.3241-2.2808-.9723-.599-.6481-.8985-1.4376-.8985-2.3683zm22.813-.3261h-8.703c.0332 1.1874.3969 2.103 1.091 2.7469s1.6479.9658 2.8615.9658c1.3632 0 2.6142-.4097 3.753-1.2292v2.3455c-1.1637.7359-2.7015 1.1038-4.6133 1.1038-1.8786 0-3.352-.5832-4.4201-1.7497s-1.6022-2.8075-1.6022-4.9231c0-1.99856.5881-3.62703 1.7643-4.88552 1.1762-1.25848 2.6371-1.88771 4.3827-1.88771s3.0963.56443 4.0522 1.6933 1.4339 2.69672 1.4339 4.70363zm-3.4528-4.52311c.4806.58334.7251 1.39958.7334 2.44871h-5.8921c.1326-.99038.4869-1.79193 1.0628-2.40464.576-.61272 1.2783-.91907 2.107-.91907.8453 0 1.5082.29166 1.9889.875zm21.8704 10.45591c1.3315 0 2.4776-.2921 3.4383-.8764v-1.2018c-.9607.6844-2.0899 1.0266-3.3878 1.0266-1.4157 0-2.5555-.505-3.4193-1.5149s-1.2957-2.3453-1.2957-4.0063c0-1.7193.4719-3.11943 1.4158-4.2003.9438-1.08086 2.1742-1.62128 3.6911-1.62128 1.104 0 2.1195.28377 3.0465.85133v-1.30204c-.927-.40063-1.8835-.60094-2.8695-.60094-1.9046 0-3.4636.64893-4.6771 1.9468-1.2136 1.29787-1.8203 2.96503-1.8203 5.00153 0 1.9364.5393 3.5034 1.618 4.7012 1.0787 1.1977 2.4987 1.7965 4.26 1.7965zm11.0428-11.9856c-.3837-.27698-.8341-.41547-1.3512-.41547-1.0093 0-1.8559.52458-2.5399 1.57375-.684 1.04916-1.026 2.53892-1.026 4.46942v6.0558h-1.126v-12.89213h1.126v2.85791h.0501c.2919-.98202.7548-1.7458 1.3888-2.29136.6339-.54557 1.3679-.81835 2.202-.81835.4755 0 .9009.07554 1.2762.22662zm1.8042-4.61517c.1955.18952.4208.28427.6759.28427.2721 0 .5059-.09906.7014-.29719.1956-.19812.2934-.43501.2934-.71067 0-.292879-.0999-.525459-.2997-.697743s-.4315-.258425-.6951-.258425c-.2466 0-.4698.088294-.6696.264885-.1998.176592-.2997.407018-.2997.691283 0 .29289.0978.53408.2934.72359zm.0088 16.29867v-12.84176h1.2086v12.84176zm5.0798-2.2859h.0501c.9181 1.7283 2.337 2.5924 4.2566 2.5924 1.7194 0 3.1028-.6617 4.1502-1.985 1.0475-1.3234 1.5712-3.0579 1.5712-5.2036 0-1.92865-.4569-3.45443-1.3709-4.5774-.9139-1.12296-2.1846-1.68443-3.8121-1.68443-1.0266 0-1.9677.25673-2.8232.77021-.8555.51347-1.5127 1.24192-1.9718 2.18538h-.0501v-2.6425h-1.1517v18.72284h1.1517zm.0569-4.7728v1.6133c0 1.284.4088 2.3867 1.2264 3.308s1.8923 1.382 3.2241 1.382c1.3233 0 2.398-.5607 3.2241-1.6822.826-1.1214 1.239-2.5951 1.239-4.421 0-1.60088-.3793-2.87236-1.1379-3.81453-.7586-.94216-1.7701-1.41324-3.0344-1.41324-1.5088 0-2.6762.50026-3.5023 1.50079-.826 1.00053-1.239 2.17613-1.239 3.52688zm15.542 7.3608c.523 0 1.083-.1417 1.681-.4252v-1.0754c-.548.3084-1.058.4627-1.532.4627-.664 0-1.135-.198-1.413-.594s-.417-1.0359-.417-1.9196v-8.45368h3.362v-1.05046h-3.362v-3.71411c-.183.06669-.373.12922-.573.18758-.199.06669-.39.13339-.572.20009v3.32644h-2.2916v1.05046h2.2916v8.60378c0 2.2676.942 3.4014 2.826 3.4014z" fill="#fff" fill-rule="evenodd"></path></svg><p>Made with ♥ in Redmond, Boston, SF & Dublin</p><a href=""><img id="microsoft-logo" width="92" height="19" src="data:image/png;base64,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" alt="Microsoft Logo"/></a><p>© 2012-<!-- -->2024<!-- --> Microsoft<br/><a href="https://go.microsoft.com/fwlink/?LinkId=521839" title="Microsoft Privacy Policy">Privacy</a><a href="https://go.microsoft.com/fwlink/?LinkID=206977">Terms of Use</a></p></article><article id="using-typescript"><h3>Using TypeScript</h3><ul><li><a href="/docs/">Get Started</a></li><li><a href="/download/">Download</a></li><li><a href="/community/">Community</a></li><li><a to="/play/" href="/play/">Playground</a></li><li><a href="/tsconfig/">TSConfig Ref</a></li><li><a to="/play/#show-examples" href="/play/#show-examples">Code Samples</a></li><li><a href="/why-create-typescript/">Why TypeScript</a></li><li><a href="/branding/">Design</a></li></ul></article><article id="community-links"><h3>Community</h3><ul><li><a style="position:relative" href="/community">Get Help</a></li><li><a style="position:relative" href="https://devblogs.microsoft.com/typescript/">Blog</a></li><li><a style="position:relative" href="https://github.com/microsoft/TypeScript/#readme"><span class="link-prefix"><svg fill="none" height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m6.03927.165405c-3.27055 0-5.922909 2.652005-5.922909 5.923645 0 2.61709 1.697089 4.83705 4.050909 5.62035.29636.0546.40436-.1284.40436-.2854 0-.1408-.00509-.5131-.008-1.0073-1.64763.3578-1.99527-.7942-1.99527-.7942-.26946-.68436-.65782-.86654-.65782-.86654-.53782-.36727.04073-.36001.04073-.36001.59454.04182.90727.61055.90727.61055.52836.90509 1.38655.64364 1.724.492.05382-.38254.20691-.64363.376-.79163-1.31527-.14946-2.69818-.65782-2.69818-2.92764 0-.64654.23091-1.17564.60982-1.58946-.06109-.14981-.26437-.75236.05818-1.56763 0 0 .49709-.15927 1.62872.60727.47237-.13163.97928-.19709 1.48291-.19964.50328.00255 1.00982.06801 1.48291.19964 1.13091-.76654 1.62727-.60727 1.62727-.60727.32328.81527.12001 1.41782.05928 1.56763.37964.41382.60873.94292.60873 1.58946 0 2.27564-1.38509 2.77636-2.70437 2.92291.21237.18291.40182.54436.40182 1.09672 0 .79204-.00727 1.43094-.00727 1.62514 0 .1585.10691.3429.40727.2851 2.35197-.7851 4.04767-3.00369 4.04767-5.62005 0-3.27164-2.6524-5.923645-5.92403-5.923645z" fill="#fffffe" fill-rule="evenodd"></path></svg></span>GitHub Repo</a></li><li><a style="position:relative" href="https://discord.gg/typescript"><span class="link-prefix"><svg fill="none" height="10" viewBox="0 0 11 10" width="11" xmlns="http://www.w3.org/2000/svg"><path d="m9.05511 0h-7.11021c-.59959 0-1.087753.46-1.087753 1.03v6.76c0 .57.488163 1.03 1.087753 1.03h6.01715l-.28123-.925.67918.595.64205.56 1.14085.95v-8.97c0-.57-.4882-1.03-1.08779-1.03zm-2.04817 6.53s-.19102-.215-.3502-.405c.6951-.185.96041-.595.96041-.595-.21755.135-.42449.23-.61021.295-.2653.105-.52.175-.76938.215-.50939.09-.97633.065-1.37429-.005-.30245-.055-.56245-.135-.78-.215-.12204-.045-.25469-.1-.38735-.17-.01592-.01-.03183-.015-.04775-.025-.01061-.005-.01592-.01-.02123-.015-.09551-.05-.14857-.085-.14857-.085s.2547.4.92857.59c-.15918.19-.35551.415-.35551.415-1.17265-.035-1.61836-.76-1.61836-.76 0-1.61.76408-2.915.76408-2.915.76408-.54 1.49102-.525 1.49102-.525l.05306.06c-.9551.26-1.39551.655-1.39551.655s.11673-.06.31306-.145c.56776-.235 1.01878-.3 1.20449-.315.03184-.005.05837-.01.0902-.01.32368-.04.6898-.05 1.07184-.01.50408.055 1.04531.195 1.59714.48 0 0-.41918-.375-1.32122-.635l.07428-.08s.72694-.015 1.49103.525c0 0 .76408 1.305.76408 2.915 0 0-.45102.725-1.62368.76z" fill="#fff"></path></svg></span>Community Chat</a></li><li><a style="position:relative" href="https://twitter.com/TypeScript"><span class="link-prefix"><svg fill="none" height="10" viewBox="0 0 13 10" width="13" xmlns="http://www.w3.org/2000/svg"><path d="m4.58519 10c4.62962 0 7.16291-3.83919 7.16291-7.16289 0-.10801 0-.21602-.0049-.32403.4909-.35348.918-.80024 1.2568-1.30591-.4517.20128-.9377.33384-1.4483.39766.5204-.30929.9181-.805148 1.1095-1.394284-.486.289658-1.026.495856-1.6004.608773-.4615-.490946-1.11448-.7953322-1.83617-.7953322-1.38938 0-2.51856 1.1291732-2.51856 2.5185532 0 .19638.02455.38785.06383.57441-2.09143-.1031-3.94721-1.10954-5.1893-2.631474-.21602.373119-.33876.805154-.33876 1.266644 0 .87388.44677 1.64467 1.11936 2.09634-.41239-.01473-.80024-.12765-1.13899-.31421v.03437c0 1.21754.86897 2.23871 2.01778 2.46946-.2111.05891-.43203.08837-.66277.08837-.16202 0-.31912-.01473-.47131-.04419.31911 1.00153 1.25191 1.72813 2.35163 1.74777-.86406.67751-1.94906 1.08008-3.12733 1.08008-.20128 0-.402571-.00982-.59895-.03436 1.10954.70696 2.43509 1.12425 3.85393 1.12425z" fill="#fff"></path></svg></span>@TypeScript</a></li><li><a style="position:relative" href="https://fosstodon.org/@TypeScript" rel="me"><span class="link-prefix"><svg fill="none" height="12" viewBox="0 0 74 79" width="12" xmlns="http://www.w3.org/2000/svg"><path d="M73.7014 17.4323C72.5616 9.05152 65.1774 2.4469 56.424 1.1671C54.9472 0.950843 49.3518 0.163818 36.3901 0.163818H36.2933C23.3281 0.163818 20.5465 0.950843 19.0697 1.1671C10.56 2.41145 2.78877 8.34604 0.903306 16.826C-0.00357854 21.0022 -0.100361 25.6322 0.068112 29.8793C0.308275 35.9699 0.354874 42.0498 0.91406 48.1156C1.30064 52.1448 1.97502 56.1419 2.93215 60.0769C4.72441 67.3445 11.9795 73.3925 19.0876 75.86C26.6979 78.4332 34.8821 78.8603 42.724 77.0937C43.5866 76.8952 44.4398 76.6647 45.2833 76.4024C47.1867 75.8033 49.4199 75.1332 51.0616 73.9562C51.0841 73.9397 51.1026 73.9184 51.1156 73.8938C51.1286 73.8693 51.1359 73.8421 51.1368 73.8144V67.9366C51.1364 67.9107 51.1302 67.8852 51.1186 67.862C51.1069 67.8388 51.0902 67.8184 51.0695 67.8025C51.0489 67.7865 51.0249 67.7753 50.9994 67.7696C50.9738 67.764 50.9473 67.7641 50.9218 67.7699C45.8976 68.9569 40.7491 69.5519 35.5836 69.5425C26.694 69.5425 24.3031 65.3699 23.6184 63.6327C23.0681 62.1314 22.7186 60.5654 22.5789 58.9744C22.5775 58.9477 22.5825 58.921 22.5934 58.8965C22.6043 58.8721 22.621 58.8505 22.6419 58.8336C22.6629 58.8167 22.6876 58.8049 22.714 58.7992C22.7404 58.7934 22.7678 58.794 22.794 58.8007C27.7345 59.9796 32.799 60.5746 37.8813 60.5733C39.1036 60.5733 40.3223 60.5733 41.5447 60.5414C46.6562 60.3996 52.0437 60.1408 57.0728 59.1694C57.1983 59.1446 57.3237 59.1233 57.4313 59.0914C65.3638 57.5847 72.9128 52.8555 73.6799 40.8799C73.7086 40.4084 73.7803 35.9415 73.7803 35.4523C73.7839 33.7896 74.3216 23.6576 73.7014 17.4323ZM61.4925 47.3144H53.1514V27.107C53.1514 22.8528 51.3591 20.6832 47.7136 20.6832C43.7061 20.6832 41.6988 23.2499 41.6988 28.3194V39.3803H33.4078V28.3194C33.4078 23.2499 31.3969 20.6832 27.3894 20.6832C23.7654 20.6832 21.9552 22.8528 21.9516 27.107V47.3144H13.6176V26.4937C13.6176 22.2395 14.7157 18.8598 16.9118 16.3545C19.1772 13.8552 22.1488 12.5719 25.8373 12.5719C30.1064 12.5719 33.3325 14.1955 35.4832 17.4394L37.5587 20.8853L39.6377 17.4394C41.7884 14.1955 45.0145 12.5719 49.2765 12.5719C52.9614 12.5719 55.9329 13.8552 58.2055 16.3545C60.4017 18.8574 61.4997 22.2371 61.4997 26.4937L61.4925 47.3144Z" fill="#fff"></path></svg></span>Mastodon</a></li><li><a style="position:relative" href="https://stackoverflow.com/questions/tagged/typescript"><span class="link-prefix"><svg fill="none" height="16" viewBox="0 0 12 16" width="12" xmlns="http://www.w3.org/2000/svg"><path d="m.375 15.1875v-6h1.09375l-.03125 4.8125h7.1875v-4.78125h1.125v5.96875zm1.75-3.1563h5.625v1.1876h-5.625zm.03125-.9374.09375-1.2188 5.65625.5312-.125 1.2188zm.28125-2.4688.34375-1.1875 5.46875 1.53125-.34375 1.18745zm1.03125-2.90625.625-1.0625 4.84375 2.9375-.65625 1.0625zm2.40625-2.9375 1-.71875 3.3125 4.625-1 .71875zm3.625-1.78125 1.1875-.1875.9375 5.59375-1.2188.1875z" fill="#fff"></path></svg></span>Stack Overflow</a></li><li><a style="position:relative" href="https://github.com/microsoft/TypeScript-Website"><span class="link-prefix"><svg fill="none" height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="m6.03927.165405c-3.27055 0-5.922909 2.652005-5.922909 5.923645 0 2.61709 1.697089 4.83705 4.050909 5.62035.29636.0546.40436-.1284.40436-.2854 0-.1408-.00509-.5131-.008-1.0073-1.64763.3578-1.99527-.7942-1.99527-.7942-.26946-.68436-.65782-.86654-.65782-.86654-.53782-.36727.04073-.36001.04073-.36001.59454.04182.90727.61055.90727.61055.52836.90509 1.38655.64364 1.724.492.05382-.38254.20691-.64363.376-.79163-1.31527-.14946-2.69818-.65782-2.69818-2.92764 0-.64654.23091-1.17564.60982-1.58946-.06109-.14981-.26437-.75236.05818-1.56763 0 0 .49709-.15927 1.62872.60727.47237-.13163.97928-.19709 1.48291-.19964.50328.00255 1.00982.06801 1.48291.19964 1.13091-.76654 1.62727-.60727 1.62727-.60727.32328.81527.12001 1.41782.05928 1.56763.37964.41382.60873.94292.60873 1.58946 0 2.27564-1.38509 2.77636-2.70437 2.92291.21237.18291.40182.54436.40182 1.09672 0 .79204-.00727 1.43094-.00727 1.62514 0 .1585.10691.3429.40727.2851 2.35197-.7851 4.04767-3.00369 4.04767-5.62005 0-3.27164-2.6524-5.923645-5.92403-5.923645z" fill="#fffffe" fill-rule="evenodd"></path></svg></span>Web Repo</a></li></ul></article></section></footer><div class="page-popup" id="language-recommendation" style="display:none"><p id="language-recommendation-p">MSG</p><div><button class="first" id="language-recommendation-open"></button><button id="language-recommendation-no-more"></button></div></div></div></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><!-- slice-start id="_gatsby-scripts-1" --> <script id="gatsby-chunk-mapping" > window.___chunkMapping="{\"app\":[\"/app-6ab7e0354385adfb6ba2.js\"],\"component---src-pages-branding-tsx\":[\"/component---src-pages-branding-tsx-440e362e50680e0e3747.js\"],\"component---src-pages-dev-bug-workbench-tsx\":[\"/component---src-pages-dev-bug-workbench-tsx-4f1f47b1794424d80c37.js\"],\"component---src-pages-dev-playground-plugins-tsx\":[\"/component---src-pages-dev-playground-plugins-tsx-fcd2797163a9c90ad6b5.js\"],\"component---src-pages-dev-sandbox-tsx\":[\"/component---src-pages-dev-sandbox-tsx-21bc53b5e8dd584632d0.js\"],\"component---src-pages-dev-twoslash-tsx\":[\"/component---src-pages-dev-twoslash-tsx-405f36db52cbdfa07e8a.js\"],\"component---src-pages-dev-typescript-vfs-tsx\":[\"/component---src-pages-dev-typescript-vfs-tsx-635f333ffbdf010041df.js\"],\"component---src-templates-documentation-tsx\":[\"/component---src-templates-documentation-tsx-0e6bccaad6988b5462a2.js\"],\"component---src-templates-glossary-tsx\":[\"/component---src-templates-glossary-tsx-a0dce7484c83a19590b4.js\"],\"component---src-templates-pages-cheatsheets-tsx\":[\"/component---src-templates-pages-cheatsheets-tsx-965106ccde2c6c1ae555.js\"],\"component---src-templates-pages-community-tsx\":[\"/component---src-templates-pages-community-tsx-24bceb218daa34beddfe.js\"],\"component---src-templates-pages-docs-handbook-index-tsx\":[\"/component---src-templates-pages-docs-handbook-index-tsx-2001ad8d2bc1debd6c59.js\"],\"component---src-templates-pages-docs-index-tsx\":[\"/component---src-templates-pages-docs-index-tsx-96e02905712c01f400a6.js\"],\"component---src-templates-pages-download-tsx\":[\"/component---src-templates-pages-download-tsx-8ae10160316431f17631.js\"],\"component---src-templates-pages-dt-search-tsx\":[\"/component---src-templates-pages-dt-search-tsx-0824ab4062db58a18547.js\"],\"component---src-templates-pages-empty-tsx\":[\"/component---src-templates-pages-empty-tsx-ff6685a8a056afd03fea.js\"],\"component---src-templates-pages-index-tsx\":[\"/component---src-templates-pages-index-tsx-97d906a0f8a3bb48bc6e.js\"],\"component---src-templates-pages-tools-tsx\":[\"/component---src-templates-pages-tools-tsx-0d64a9b3faa88930876e.js\"],\"component---src-templates-pages-why-create-typescript-tsx\":[\"/component---src-templates-pages-why-create-typescript-tsx-37cf4df6166fee310ca0.js\"],\"component---src-templates-play-example-tsx\":[\"/component---src-templates-play-example-tsx-f169ca72b98afa65abd0.js\"],\"component---src-templates-play-tsx\":[\"/component---src-templates-play-tsx-ad260cbb4e88cb9c45f3.js\"],\"component---src-templates-playground-handbook-tsx\":[\"/component---src-templates-playground-handbook-tsx-40b74df1775af714e7a7.js\"],\"component---src-templates-tsconfig-option-one-page-tsx\":[\"/component---src-templates-tsconfig-option-one-page-tsx-bfc6cb9586f5bdf559d7.js\"],\"component---src-templates-tsconfig-reference-tsx\":[\"/component---src-templates-tsconfig-reference-tsx-a3c85d191dfc7d449cf4.js\"]}"; </script> <script>window.___webpackCompilationHash="a07f1a3852c2f2525440";</script><script src="/webpack-runtime-e51734d49cabedc928a7.js" async></script><script src="/app-6ab7e0354385adfb6ba2.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html>