There is no denying the trend to deliver critical business apps through the browser using Single Page Application frameworks that rely heavily on JavaScript. Traditionally frowned upon as a loosely typed language not fit for large scale development or teams, JavaScript is rapidly evolving with the latest ECMAScript 2015/6 specifications. TypeScript is a technology that can help teams future proof their applications and build them at scale.
By serving as a superset of JavaScript and enabling definition files to describe existing JavaScript libraries, TypeScript can be integrated seamlessly into existing projects. It provides syntax that aligns with the current specifications and will compile to various versions of JavaScript and leverage different libraries that provide module support. Learn how TypeScript improves the development experience by providing development and compile-time checks, type safety, interfaces, true class inheritance, and other features that accelerate delivery and improve the quality and stability of Single Page Applications.
2. Today’s Agenda
1. Intro With whom am I speaking?
2. JavaScript Wat?!!!
3. The Basics Types, Interfaces, Classes, and Modules
4. The Cool Stuff Functions and Lambdas, Complex Type Definitions, Generics, Mixins/Decorators
5. The Real World Library Definitions, Compiler Options, AMD
4. Jeremy Likness
• Wife, 2 children, vegan hiking 9-ball player
• Started programming in the Commodore 64 days (yes, we
had computers in the early 1980s)
• Brief foray into game development with Quake in mid
1990s
• Enterprise Developer for 20 years
• Web Developer since, well, the web (1990s)
• TypeScript Developer since beta in 2012 (six figures LOCs)
• 7-time Microsoft MVP
• Author of 4 technology books
• http://bit.ly/coderblog
9. JavaScript Isn’t Going Anywhere
1995
•Mocha
becomes
LiveScript
•Written in
10 Days
1996
•JavaScript
1997
•ECMAScript
1.0
•Standards!
1999
•ECMAScript
3.0
2005
•jQuery
•Normalize
the DOM
2009
•NodeJS
2012
•TypeScript
•Superset /
Normalize
JavaScript
2015
•ECMAScript
2015
10. • Popular Option
• Introduces Classes, Lexical Scope, Lambda, etc.
• Lacks:
• Interfaces
• Dynamic module affinity (SystemJS, RequireJS, etc.)
• External library definitions
• Generics
• TypeScript = Superscript and is “future-proof”
What About ECMAScript 6/2015 and Babel?
11. • Discovery: intent is more clear with types, interfaces, etc.
• Documentation: libraries make it easy to discover how to use APIs
• Development Time Security: “fat-finger” mistakes less likely, even
through complex iterations of calls and callbacks, won’t compile
• Scope Safety: Modules, Classes, and Lambdas manage concepts of
scope and “this” context
• Team Scale: components make it easier for multiple teams to work in
parallel
• 4x: Increased velocity for a team shifting from JavaScript to TypeScript
with a data-binding framework (Angular)
TypeScript in the Real World
12. • “I cannot say I have ever been a Microsoft fan but TypeScript has
‘softened’ me, it is easily one of the best web technologies to arrive in
the past 3 years.” - https://tedpatrick.com/2013/06/25/7-months-with-typescript/
• “Overall, TypeScript is wonderful to work with. It helps developers
catch errors quickly, adds types and type-checking, and documents your
progress so that if someone else wants to contribute, or you need to
return to your work months later, you can easily pick up where you left
off.” - http://www.livetiles.nyc/blog/typescript-a-digital-workplace-success-story/
• “… we use TypeScript not because we’re part of Microsoft, but because
we find tremendous value by improving our productivity and keeping
our quality high which together allow us to move much faster.” -
https://medium.com/@delveeng/why-we-love-typescript-bec2df88d6c2#.pzp9xp7an
What Are People Saying?