Anders Hejlsberg, Steve Lucco, Luke Hoban: TypeScript 0.9 - Generics and More

Download this episode

Download Video


Anders Hejlsberg, Steve Lucco, and Luke Hoban join us again for a conversation about TypeScript. What have they learned since TypeScript first became available in preview form? How are folks using it? What's the feedback been?

Today, we're pleased to announce the arrival of TypeScript version 0.9. This pre-release version includes a very important feature (and one near and dear to Anders' heart): generics. Very cool! How does generics work in TypeScript? What was the most challenging aspect of implementing generics in TypeScript? What else is in 0.9 (hint: plenty!)?

As usual, this is a conversation. We cover a fair amount of ground and take turns into interesting rabbit holes when they present themselves. It's always great to talk with Anders, Steve and Luke; great folks.

Learn more here:

TypeScript Team blog
Soma's blog



Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • WinInsider

      Having higher level language as TypeScript... it would be now more feasible to map CIL down to TypeScript, and it down to Web Assembly Language (aka JavaScript) effect: C# compiler for JavaScript ... not that will happen, or that there are plans for this; but just saying...

      LINQ substituted T-SQL (assembly language of the Database),
      Making a way with the web assembly language, would be next logical step.  It would be a realization of many smart people.

      Happy to hear that Roslyn Project is doing well...

    • Matej Cepl


    • felix9

      Hmmm...Anders said he insisted on generate readable code so that people will trust the system.

      Maybe its not actually needed, because, In Anders We Trust Wink


      Generic Comment Image

    • MgSam

      Could you guys ask the community and have questions voted on before you do these interviews? The questions you ask are terrible. Why watch a 40 minute video where you ask questions that you'd know the answer to if you just read the TypeScript blog posts?

    • Charles

      @MgSam: Did you actually watch the video? Which questions are terrible? Why?

      None of the questions I asked were answered on the blog before this interview took place... At any rate, sometimes we ask community for questions, sometimes we don't. Depends on the amount of lead time.


    • ZippyV

      Just updated to Typescript 0.9 (but I haven't used it much) and the installer wants me to reboot the pc. Why is that?

    • Heavens​Revenge

      Thank god Charles for another video, I've been waiting for something new from you man!

      I think one of the COOLEST way Microsoft should empower JavaScript/Typescript is to create a shim for C++ AMP(or WebCL) and let the Chakra engine use both CPU and GPU with those, or at least some sort of interface to really leverage the hardware from within IE mainly in a way Chakra implements it and normal JS just gets the engines use of C++AMP/OpenCL transparently instead of just looking toward the CPU for a speed boost.

      IE is REALLY getting better, completely incomparable versus the older generation of IE and since C++ AMP/OpenCL is quite sexy in terms of perf, I think one way to really make IE attractive to rip the competition to shreds is letting such a shim or interface to that type of hardware utilization since your IE11 is implementing WebGL so may as well get WebCL/AMP in there. Instead of playing catch up how about get a leg up? Tongue Out

    • WinInsider

      @ Matej Cepl, sweet, thanks... and so it has began.


      If MS would in early 2000's, after .NET began; push CIL as a common (low level) browser language (in IE, Mozila, Opera, etc..); the future would have been a lot brighter.  Developers could target it using any "human language" of their choice, which was the promise of .NET/CIL.

      I think the idea was side track (and bit late) by a product (Sliverlight, which is still good alternative); nevertheless, a "language strategy" using CIL in browsers would have paid off better then "product strategy" (Sliverlight).  As then, and still now; JavaScript (1995) is getting old, and beyond for what was originaly design for.

      ... easy for me to say, now Smiley

    • felix9

      From Dave Detlefts' LinkedIn page, I think he may be part of the SPUR project:

      January 2006 – February 2013 (7 years 2 months)Redmond, WA

      Projects included:
      * Transactional memory (see "STM.NET"; didn't become a product).
      * Internal AD project to execute JavaScript on .NET. Did not become the strategy Smiley
      * CLR JIT team.

      also, from Mike Magruder's LinkedIn page

      Common Language Runtime (CLR)

      I worked on the CLR, which is Microsoft's runtime for C#, VB.Net, C++/CLI, and many other languages. In total I spent 11 years on the CLR as an architect, dev lead, and dev, on projects which included the debugging and profiling services, exception handling, incubation projects on software transactional memory (STM), a new "minimal runtime" to be used at low levels within Windows, and a project to host JScript on the CLR. These projects involved development in C#, C++, x86/x64 asm, and code generators from IL to x86/x64 asm.

      of course it was 10 years later.

      btw: sad to know Dave Detlefs and Mike Magruder have left CLR team recently.

    • Charles

      @WinInsider: But JavaScript already is the IL of the web (assembly code is an intermediate form, too), as it was in 2000. If you output JS, then it runs in multiple "virtual machines" running on multiple operating systems running on multiple devices. There is no need try and replace it. Like some established and beloved restaurants, JavaScript isn't going to close down anytime soon because something new comes along...


    • WinInsider

      What TypeScript (and other "typed" JavaScript extensions) attempt to do is to add type information, then only be dumb-down to JavaScript IL, then this lost type information re-constructed by browser's parser*.

      Not that it will not do... but it seems like the a lot of effort is expanded both on the transmission and reception via this JavaScript IL medium. CIL seems like more intelligent medium.

      * my understanding is that google's V8 and IE Chaka, need to infer some of the information that was lost "erased" in the wire transmission (while in JavaScript IL format)

    • Heavens​Revenge

      Yea... the biggest and most stupid problem is that type info is used to develop to help prevent bugs etc, and all that type info during dev time is, lost in between over the wire, then reconstructed afterwards in the engines.... COMPLETELY redundant since type into is 92% used on both sides.

      This may be a bad idea since it WOULD add more payload but IDE's and browsers should work together to make some type/function signature/forward declaration hinting script standard for the browsers to use, the same type info that devs use to code with, that way at least the type info wouldn't be lost over the wire for 0 reason.  

      This all depends on if the download size negates time spend parsing and optimizing without types vs with types provided in he engines.  Basically a function signature definition include file to give all type info for the browser to use as the skeleton of all functions to help runtime without needing to do type checking & inference.

      In my opinion types are being added as needed, and their almost always needed; sounds like the reasons standards bodies began in the 1st place, to standardize common practice for interoperability. So yes there seems like a need exists here in some way or another as long as its optional for compatibility and it provides a real boost in some way, might be interesting.

    • Charles

      @HeavensRevenge: One of the benefits of JavaScript (and dynamic languages in general) is its un-typed nature and the flexibility this affords when you want to use JS to do any number of computing tasks (a feature of dynamic languages).

      The genius of TypeScript is that you get the benefits of types when it matters most (at design time, enabling you to find bugs while you type them) and you never stray that far away from the target: JavaScript.


    • Fredrik Skeel Loekke

      @Charles, would it be possible for you to provide a list of typescript related research papers? In the interview it is mentioned that a few have been written..

    • liviu

      typescript is becoming a big unstable mess. version 0.9 is very slow and has a lot of generics bugs.
      Why does Microsoft not use some effort to build a reliable C# to Javascript translator ecosystem?
      I mean build on Portable Library feature.
      There are projects that convert c# to javascript but they are not polished enough.
      I myself did a working proof of concept in one month: with assemblies that export to javascript and ca refer other assemblies javascript compatible. The result: a mvvm databinding framework with unit tests that pass in C# and also in Javascript.

    • Charles

      @liviu: Can you share the bugs you've found on the TypeScript forums?


    • Charles

      @Fredrik Skeel Loekke: I'll ask the team.


    • Akard

      There is already a SIMD proposal for ES7. Other then that, Microsoft should support WebCL just like they are supporting webgl

    • Charles

      @Fredrik Skeel Loekke: There are no papers (as in scientific literature) available. Can you be more specific?

    • danfma

      Great work team! TypeScript and generics is what I was waiting for!

    • tarkus

      Keep it up, great work! I'd love to see a good code analysis tool for TypeScript...

    • scyonx

      With Generics entering typescript, does this mean that we'll see a linq like querying support coming soon ?

    • mgraham

      Love TypeScript.  This is important work.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.