2019-10-15
859
#typescript#what's new
Paul Cowan
8357
Oct 15, 2019 ⋅ 3 min read

New in TypeScript 3.7

Paul Cowan Contract software developer.

Recent posts:

Implementing local-first agentic AI: A practical guide

A practical walkthrough of building local-first, privacy-preserving AI agents using small language models.

Rosario De Chiara
Jan 29, 2026 ⋅ 5 min read
A Guide To Async/Await In TypeScript

A guide to async/await in TypeScript

TypeScript’s async/await lets you write asynchronous code that reads like synchronous code, making it easier to understand, maintain, and reason about.

Olasunkanmi John Ajiboye
Jan 28, 2026 ⋅ 17 min read
the replay jan 28

The Replay (1/28/26): Anti-frameworkism, dev superpowers, and more

Discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the January 28th issue.

Matt MacCormack
Jan 28, 2026 ⋅ 33 sec read

Building AI apps that remember: Mem0 vs Supermemory

Compare mem0 and Supermemory to learn how modern AI apps manage long-term memory beyond RAG and stateless LLM chats.

Kapeel Kokane
Jan 26, 2026 ⋅ 9 min read
View all posts

8 Replies to "New in TypeScript 3.7"

  1. So typescript is going to have pretty much every feature C# has. (what a coincidence, they’re designed by the same person)

  2. The optional chaining operator just tells me that I am going to show up at client sites where every single dot in the application is preceded by a question mark, the same way that async permeates through the code.

    It tells me that nobody is actually going to know anything about the data that runs through the system, and it’s going to hide bugs that are ridiculous to solve, because they could have happened at any `?.` upstream from where your data was supposed to be.
    Moreover, this affects all downstream systems, as well.

    I’m not saying that 10,000 null checks is good, either. What I am saying is that we are programming backwards. What I am saying is that we should have systems that are hermetically sealed, and operate only on types that are known, not types where every member is optional/nullable. If you can’t build an instance of a type with the pieces you have been given (plus any reasonable defaults), then you should take a different path in code, rather than passing in a tree that is garnished with nulls.

    The invention/inclusion of null in programming languages was Tony Hoare’s billion dollar mistake, and instead of thinking about how we can program without it, we are making it easier to make everything null, at all times, without crashing.

    However, the null coalescing operator is a good tool for building those known and trusted data types from untrusted data sources (server responses, database fields, localStorage, user input), *if* the field you are settling has a valid default/empty/identity state. Optional chaining would be fine to use in the case where you were grabbing an expected value from an unknown data source, and using the coalescing operator to set the default, when building a closed system of well-defined types… but we all know that isn’t how it’s going to be used.

  3. Personally I think the worst thing about their announcement blog post is the dubious formatting of ternary operators. I mean, everybody knows that you’re supposed to format them
    “`
    var result = condition
    ? first_expression()
    : second_expression()
    “`

Leave a Reply

Hey there, want to help make our blog better?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now