https://devblogs.microsoft.com/typescript/ten-years-of-typescript/ Skip to main content [RE1Mu3b] Microsoft TypeScript TypeScript TypeScript * Home * DevBlogs * Developer + Visual Studio + Visual Studio Code + Visual Studio for Mac + DevOps + Developer support + CSE Developer + Engineering@Microsoft + Azure SDK + IoT + Command Line + Perf and Diagnostics + Dr. International + Notification Hubs + Math in Office * Technology + DirectX + PIX + SurfaceDuo + Startups + Sustainable Engineering + Windows AI Platform * Languages + C++ + C# + F# + Visual Basic + TypeScript + PowerShell Community + PowerShell Team + Python + Q# + JavaScript + Java + Java Blog in Chinese * .NET + .NET + .NET MAUI + Blazor + ASP.NET + NuGet + Xamarin + .NET Blog in Chinese * Platform Development + #ifdef Windows + Apps for Windows + Azure Depth Platform + Azure Government + Bing Dev Center + Microsoft Edge Dev + Microsoft Azure + Microsoft 365 Developer + Old New Thing + Windows MIDI and Music dev + Windows Search Platform * Data Development + Azure Cosmos DB + Azure Data Studio + Azure SQL Database + OData + Revolutions R + SQL Server Data Tools * More [ ] Search Search Cancel Ten Years of TypeScript [png] Daniel Rosenwasser October 1st, 20222 0 Today is TypeScript's birthday! But this birthday is a special one - 10 years ago today, on October 1st, 2012, TypeScript was unveiled publicly for the first time. The Early Days When TypeScript first debuted, there was a lot of skepticism - and understandably so. To some JavaScript users, a team trying to bring static types to JavaScript might have sounded like an evil plot or a joke. But the features had merit, right? Type-checking, catching bugs before you even save your file, and getting rich editor features like code-completion, navigation, and refactorings? We knew teams inside and outside of our company were having huge challenges with complex JavaScript codebases, and we knew that JavaScript was going to be used everywhere. So who wouldn't want powerful tools to help write it? For the team, there was a vision for what TypeScript could be, and in fact, if you look back at our first announcement post, the value proposition was largely the same as it is today! Luckily, that vision resonated with others. Early on, we built a small but hard-working and enthusiastic community, willing to experiment and ride out the experience while we were still iterating, learning, and building something that hadn't yet even hit 1.0. We saw exciting new efforts like the DefinitelyTyped project, new community members helping out on StackOverflow and our issue tracker, authors writing books and tutorials for the language, and new libraries taking a bet on TypeScript. These patient, hard-working, and energetic developers laid the foundation for the TypeScript community to grow. Still, most JavaScript developers were uncertain of TypeScript. So how was this team going to convince JavaScript developers of the value of static types in a dynamically typed language? "Types versus no types" has been a... contentious topic, and that goes back at least half a century in the programming world. But we really wanted to create amazing JavaScript tools through the power of types. Could it be done? Standing the Test of Time The truth is that this required a completely different approach in development than we were used to, followed by persistence, outreach, and empathy. TypeScript had to be free and open source, and done in a truly out-in-the-open manner. It also had to interoperate seamlessly with existing JavaScript, co-evolve with JavaScript, and feel like JavaScript. TypeScript never set out to build a separate, distinct, and prescriptive language. Instead, TypeScript had to be descriptive - innovating in the type system around conventions and patterns found "in the wild" of the JavaScript ecosystem. This let us meet people where they were, and this philosophy really fit well with the project's design goals. It's actually surprising how well the design goals for TypeScript have held up. For example, some design goals like * "Impose no runtime overhead on emitted programs." * "Align with current and future ECMAScript proposals." * "Preserve runtime behavior of all JavaScript code." * "Avoid adding expression-level syntax." * "Use a consistent, fully erasable, structural type system." all really point TypeScript towards simply being a type-checker for JavaScript, adding only syntax that's necessary for type-checking. So we focused chiefly on the type system, and avoided adding new runtime syntax and behaviors. This might seem obvious 10 years later, but programming languages often try to differentiate themselves based on what their runnable code looks like - plus, lots of typed languages guide their runtime behavior based on the types. But these approaches don't make sense when trying to build on, and integrate with, JavaScript. Untyped JavaScript had to work the same when pasted into a TypeScript file, and converting TypeScript to JavaScript needed to be as easy as stripping away types. It took a few missteps early on for us to realize this, but it was a learning opportunity and the team has avoided runtime syntax for the better part of 10 years. Nowadays, when TypeScript is missing a useful runtime feature, we don't just add it to TypeScript. We work within TC39 (the JavaScript standards body) to guide or champion new features so that all JavaScript developers can benefit from them. Another successful principle is that TypeScript hasn't tried to be every tool in the toolbox. One of our non goals is to not "provide an end-to-end build pipeline. Instead, make the system extensible so that external tools can use the compiler for more complex build workflows." There have been plenty of times when TypeScript has gotten requests to be a linter, a bundler, an optimizer/minifier, a build orchestrator, a bundler (again), and more. The lines aren't always clearly defined, especially when TypeScript already does a lot as a type-checker, compiler, and language service. In the JavaScript ecosystem, where best practices have continued to evolve over the years, it's been incredibly important that TypeScript stay scoped and flexible to fit different needs. Given all the different bundlers, different runtimes, different build orchestrators, and different linters over the past years, it's been crucial that TypeScript integrate well with each of these without trying to displace any of them. It's been our privilege to collaborate with tool authors in this space, as we all work to make TypeScript and JavaScript easier to use. Back to Today Today TypeScript is a thriving language that's used by millions of developers around the world. In surveys and language rankings like StackOverflow's Annual Survey, GitHub's Octoverse Report, and Redmonk's Language Rankings, TypeScript has consistently stood in the top 10 (if not 5) most-used and most-loved languages. Of course, the context is important - TypeScript's use is fundamentally intertwined with JavaScript's, and every TypeScript developer is also a JavaScript developer. Thankfully, even when asking JavaScript developers if they use TypeScript and like it - like in the State of JS Survey - the answer is a resounding "yes"! Today's success is far and above where the core team imagined TypeScript being even a few years ago, let alone a decade ago. The core team has worked hard on TypeScript, but we know that the fundamental thing that's enabled this success is the community. That includes the external contributors to TypeScript, the library authors and everyday developers who took a bet on TypeScript and proved the language out, the DefinitelyTyped contributors, the community organizers, the experts who took the time to answer questions and taught others and made a path for newcomers - every TypeScript user, from the bottom of our hearts, thank you. You've been a part of building something great. We hope that the next 10 years of TypeScript treat you well! [png] Daniel Rosenwasser Senior Program Manager, TypeScript Follow Read next Announcing TypeScript 4.9 Beta Today we're announcing our beta release of TypeScript 4.9! To get started using the beta, you can get it through NuGet, or- use npm with the following command: You ... [png]Daniel Rosenwasser September 23, 2022 5 comments Announcing TypeScript 4.8 Today we're excited to announce the release of TypeScript 4.8! If you're not yet familiar with TypeScript, it's a language that builds on JavaScript and adds syntax for ... [png]Daniel Rosenwasser August 25, 2022 3 comments 2 comments Leave a commentCancel reply Log in to join the discussion. * [png] Eugene Astafiev October 1, 2022 1:33 pm 0 collapse this comment Congrats! Typescript continues the journey of success with pride. More to come Log in to Vote or Reply * [png] Jorge Blom-Dahl October 1, 2022 1:55 pm 0 collapse this comment TypeScript saved JavaScript and now is one of the best and more used languages out there. Thanks! Log in to Vote or Reply Top Bloggers [png] Daniel Rosenwasser Senior Program Manager [png] Orta Therox Engineer on the TypeScript Compiler Archive October 2022 September 2022 August 2022 June 2022 May 2022 April 2022 March 2022 February 2022 January 2022 November 2021 October 2021 August 2021 July 2021 May 2021 April 2021 March 2021 February 2021 January 2021 November 2020 September 2020 August 2020 June 2020 May 2020 April 2020 March 2020 February 2020 January 2020 November 2019 October 2019 August 2019 July 2019 June 2019 May 2019 March 2019 January 2019 December 2018 November 2018 October 2018 August 2018 July 2018 May 2018 March 2018 January 2018 October 2017 August 2017 June 2017 May 2017 April 2017 March 2017 February 2017 December 2016 November 2016 September 2016 August 2016 July 2016 June 2016 May 2016 March 2016 February 2016 January 2016 November 2015 September 2015 July 2015 June 2015 April 2015 March 2015 February 2015 January 2015 November 2014 October 2014 July 2014 May 2014 April 2014 February 2014 December 2013 October 2013 September 2013 August 2013 June 2013 April 2013 March 2013 February 2013 January 2013 December 2012 November 2012 Relevant Links The TypeScript Website TypeScript on GitHub TypeScript on Twitter Stay informed Login Theme * light-theme-iconLight * dark-theme-iconDark Insert/edit link Close Enter the destination URL URL [ ] Link Text [ ] [ ] Open link in a new tab Or link to existing content Search [ ] No search term specified. Showing recent items. Search or use up and down arrow keys to select an item. Cancel [Add Link] Code Block x Paste your code snippet [ ] Cancel Ok Feedback usabilla icon What's new * Surface Laptop Go 2 * Surface Pro 8 * Surface Laptop Studio * Surface Pro X * Surface Go 3 * Surface Duo 2 * Surface Pro 7+ * Windows 11 apps Microsoft Store * Account profile * Download Center * Microsoft Store support * Returns * Order tracking * Virtual workshops and training * Microsoft Store Promise * Flexible Payments Education * Microsoft in education * Devices for education * Microsoft Teams for Education * Microsoft 365 Education * Education consultation appointment * Educator training and development * Deals for students and parents * Azure for students Business * Microsoft Cloud * Microsoft Security * Dynamics 365 * Microsoft 365 * Microsoft Power Platform * Microsoft Teams * Microsoft Industry * Small Business Developer & IT * Azure * Developer Center * Documentation * Microsoft Learn * Microsoft Tech Community * Azure Marketplace * AppSource * Visual Studio Company * Careers * About Microsoft * Company news * Privacy at Microsoft * Investors * Diversity and inclusion * Accessibility * Sustainability * Sitemap * Contact Microsoft * Privacy * Manage cookies * Terms of use * Trademarks * Safety & eco * About our ads * (c) Microsoft 2022