# Cell types in new Observable?

**URL:** <https://talk.observablehq.com/t/cell-types-in-new-observable/10883>\
**Category:** Help\
**Created:** [September 25, 2026, 8:41pm UTC](https://talk.observablehq.com/t/cell-types-in-new-observable/10883 "2026-09-25T20:41:44Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![akrawitz](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/akrawitz/32/4375_2.png) [@akrawitz](https://talk.observablehq.com/u/akrawitz)\
**Post date:** [September 25, 2026, 8:41pm UTC](https://talk.observablehq.com/t/cell-types-in-new-observable/10883/1 "2026-09-25T20:41:44Z")

</div>

Hi,

A few days ago, two of the cell types were:

- TypeScript `.ts`
- JavaScript `.js`

Today, those two seem to have become one:

- JavaScript `.ts`

Although, the notebooks I made a few days ago still have cells labelled `.js`

I’m confused. I know that JavaScript is a subset of TypeScript, but it isn’t clear to me what the new mixed label is trying to convey.

Thanks,  
Adam

---

<div class="post-metadata">

**Author:** ![mbostock](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mbostock/32/9_2.png) [@mbostock](https://talk.observablehq.com/u/mbostock)\
**Post date:** [September 25, 2026, 9:44pm UTC](https://talk.observablehq.com/t/cell-types-in-new-observable/10883/2 "2026-09-25T21:44:50Z")

</div>

The same cell modes are still available, they’re just labeled differently.

Rather than calling them “JavaScript” and “TypeScript”, they are now both called “JavaScript”, and there’s a separate “Strip types” option, enabled by default, to [run TypeScript natively](https://nodejs.org/learn/typescript/run-natively). (You should almost never need to disable Strip types; it’s there mostly for backwards compatibility to avoid opting all existing JavaScript cells into type stripping.)

JavaScript with Strip types off is equivalent to the old JavaScript mode, and is labeled `js`.

JavaScript with Strip types on is equivalent to the old TypeScript mode, and is labeled `ts`, and is the default for new cells and when you pick JavaScript from the cell menu.

I changed this to address a different confusion where people don’t know that TypeScript is a superset of JavaScript, and seeing TypeScript was confusing, causing people to look for a JavaScript cell mode even though they could have used TypeScript. That confusion was raised [here](https://talk.observablehq.com/t/how-long-will-the-old-observable-be-maintained/10827/3) and [here](https://talk.observablehq.com/t/how-long-will-the-old-observable-be-maintained/10827/12).

---

<div class="post-metadata">

**Author:** ![akrawitz](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/akrawitz/32/4375_2.png) [@akrawitz](https://talk.observablehq.com/u/akrawitz)\
**Post date:** [September 26, 2026, 12:00am UTC](https://talk.observablehq.com/t/cell-types-in-new-observable/10883/3 "2026-09-26T00:00:55Z")

</div>

I appreciate your desire to reduce confusion, but I’m worried that having the default use the combination of the name “JavaScript” and the extension `.ts` is going to be more confusing, not less. Your average newbie “knows” that JavaScript files should end in `.js`. Maybe at least change it to “JavaScript/TypeScript”?

---

<div class="post-metadata">

**Author:** ![mbostock](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.observablehq.com/mbostock/32/9_2.png) [@mbostock](https://talk.observablehq.com/u/mbostock)\
**Post date:** [September 26, 2026, 12:28am UTC](https://talk.observablehq.com/t/cell-types-in-new-observable/10883/4 "2026-09-26T00:28:42Z")

</div>

I wanted to retain some indication that the cells have type stripping enabled (or not) without needing to open the cell menu. If we show `js` in both cases, you can’t easily tell whether types are allowed or not.
