Daniel Rosenwasser Profile
Daniel Rosenwasser

@drosenwasser

11,659
Followers
2,060
Following
261
Media
7,434
Statuses

@TypeScript and @TypeChat Principal Product Manager at @Microsoft , @TC39 Representative

Seattle, WA
Joined September 2015
Don't wanna be here? Send us removal request.
Pinned Tweet
@drosenwasser
Daniel Rosenwasser
6 years
"There were like 77 Levenshtein distance packages on npm and all of them said they were the fastest." - @sanders_n That's why the JavaScript ecosystem is great. Everything is the best.
7
32
317
@drosenwasser
Daniel Rosenwasser
2 years
It's ok if you started programming at 8. It's ok if you started programming at 38. You can still get out. Run.
@maria_fibonacci
Verónica 👑
2 years
It's ok if you started programming at 8. It's ok if you started programming at 38. There's room for everyone. Next.
36
295
2K
53
1K
10K
@drosenwasser
Daniel Rosenwasser
5 years
Man, JavaScript is so dumb. Check out these two built-in functions with the same name that work totally differently! > console.log("hello"); hello undefined > Math.log("hello"); NaN
60
503
3K
@drosenwasser
Daniel Rosenwasser
5 years
WE JUST MOVED OPTIONAL CHAINING IN JS TO STAGE 3 🎉🎉🎉🎉🎉🎉🎉
57
602
2K
@drosenwasser
Daniel Rosenwasser
4 years
Optional Chaining just moved to Stage 4 at TC39! 🎉 ?. is now part of ES2020!
25
625
2K
@drosenwasser
Daniel Rosenwasser
5 years
Hey TypeScript/JavaScript-ers - I got this started on the plane last night. Would you use this refactoring?
59
142
1K
@drosenwasser
Daniel Rosenwasser
5 years
Our team lead forced us to.
@Una
Una 🇺🇦
5 years
TypeScript friends: what's your #1 reason for using TypeScript?
233
35
230
23
84
1K
@drosenwasser
Daniel Rosenwasser
4 years
Please don't read into this too much I just want to turn my brain off and post dumb memes today.
Tweet media one
18
166
1K
@drosenwasser
Daniel Rosenwasser
5 years
It's been 5 years today since I joined the TypeScript team - which I guess is good since every other job post asks for ~5 years of TypeScript experience.
13
65
1K
@drosenwasser
Daniel Rosenwasser
6 years
Debuggers don't actually remove bugs, they just run your code as slow as you can think.
14
330
971
@drosenwasser
Daniel Rosenwasser
5 years
I think ~25% of any Microsoft employee's time is spent signing into different Microsoft websites.
34
43
631
@drosenwasser
Daniel Rosenwasser
4 years
YOU KNOW WHAT THIS MEANS
Tweet media one
19
140
576
@drosenwasser
Daniel Rosenwasser
5 years
@ken_wheeler "Oh wow, you're from the future!? What do you do?" "I do free work so people can make websites faster." "Oh, weird, is the future like socialist or something?" "Nope, I just occasionally do free work." "For charity?" "No." "So, uh, you must really enjoy that." "Not really."
4
82
535
@drosenwasser
Daniel Rosenwasser
4 years
Tweet media one
6
70
455
@drosenwasser
Daniel Rosenwasser
5 years
Optional chaining is at stage 2!!!!!!
18
80
369
@drosenwasser
Daniel Rosenwasser
1 year
TypeScript/JavaScript people - what's usually causing you to need to restart VS Code/TS Server?
@ixahmedxii
Ahmed Elsakaan
1 year
Are you even a web developer if these are not your most recently run vscode commands? 🤡
Tweet media one
64
29
559
172
23
378
@drosenwasser
Daniel Rosenwasser
7 years
@bradlygreen just announced publicly that @typescriptlang is now one of the official languages used at @Google ! #TypeScript
Tweet media one
8
240
333
@drosenwasser
Daniel Rosenwasser
5 years
Optional chaining (TypeScript issue 16) and nullish coalescing got a big applause at #TSConf . They're the first ECMAScript features I've ever helped champion so I feel pretty great. 🥰
Tweet media one
Tweet media two
Tweet media three
Tweet media four
12
37
297
@drosenwasser
Daniel Rosenwasser
5 years
Not sure if I've mentioned this but we made some of the errors better. #TSConf #TypeScript
Tweet media one
Tweet media two
Tweet media three
9
38
253
@drosenwasser
Daniel Rosenwasser
4 years
What made you want to rage-quit TypeScript when you started out? (╯°□°)╯︵ ┻━┻
176
19
194
@drosenwasser
Daniel Rosenwasser
5 years
If you told me 10 years ago that my job would involve talking to lawyers at Microsoft to develop more permissive software licenses, I don't know if I'd have believed you.
8
6
196
@drosenwasser
Daniel Rosenwasser
8 months
The TypeScript Documentary is out! I've been on the team for a long time now, but before that I was skeptical that TypeScript could succeed (watch the doc!) When I joined the team I realized I was wrong - we had brilliant passionate people who really understood JS & OSS.
@kbdocumentaries
Keyboard Stories
8 months
🍿 TypeScript Origins: The Documentary 👇
Tweet media one
29
385
1K
3
34
182
@drosenwasser
Daniel Rosenwasser
6 years
It's 2018. Statically typed programming languages now compete by compiling down to JavaScript and flirting with users over Twitter.
Tweet media one
2
43
163
@drosenwasser
Daniel Rosenwasser
6 years
"I don't use types in my open source projects, keeps the barrier to entry low." Yeah I don't use tests in my open source projects, keeps the barrier to entry even lower.
8
37
161
@drosenwasser
Daniel Rosenwasser
5 years
Not a lot of people know this but this was our original slogan.
@JOSH_DALEK
Josh
5 years
@alshdotme Just use Typescript you shitlord
1
2
27
4
16
162
@drosenwasser
Daniel Rosenwasser
5 years
Me: I like the web because navigating is easy Web 3.0: What if it was like native apps? Me: Oh, no thanks Web 3.0: we did it Me: Why can't I right click and open this in a new window? Web 3.0: look it's better it's a responsive progressive SPA that uses service workers at 60fps!
3
36
155
@drosenwasser
Daniel Rosenwasser
1 year
If you're using JSDoc - either for type-checking or for your editor experience - you're probably using TypeScript. Just because you're not using .ts files doesn't mean you're not using TypeScript.
8
17
151
@drosenwasser
Daniel Rosenwasser
6 years
It might sound like a small thing, but it's awesome that the React team reached out to us on TypeScript (and other teams) to coordinate on JSX fragments. The collaboration we had was stellar. Shout out to @tarquinius623 for the implementation!
@reactjs
React
6 years
render() { return ( <> <h1>React v16.2 has been released!</h1> <h2>Introduces a new syntax for fragments!</h2> Thanks to all our collaborators! </> ); }
45
1K
3K
3
31
149
@drosenwasser
Daniel Rosenwasser
3 years
😊
Tweet media one
7
10
140
@drosenwasser
Daniel Rosenwasser
5 years
Have you ever noticed that these icons mean **absolutely nothing at all**???
Tweet media one
12
6
140
@drosenwasser
Daniel Rosenwasser
5 years
Today I got to present nullish coalescing at TC39 and it progressed to stage 3! The cherry on top? @rkirsling already has a patch out for it in JavaScriptCore!
7
18
138
@drosenwasser
Daniel Rosenwasser
3 years
JavaScript tip: when doing subtraction, I like to put the bigger argument on the left so that I don't have to subtract it from 0. // ❌ bad 0 - (small - big) // ✅ good big - small
16
5
132
@drosenwasser
Daniel Rosenwasser
4 years
"Of course you can type that in TypeScript! You just need a couple of mapped types and a conditional type and-"
5
19
130
@drosenwasser
Daniel Rosenwasser
5 years
@drosenwasser
Daniel Rosenwasser
5 years
@ken_wheeler "Oh wow, you're from the future!? What do you do?" "I do free work so people can make websites faster." "Oh, weird, is the future like socialist or something?" "Nope, I just occasionally do free work." "For charity?" "No." "So, uh, you must really enjoy that." "Not really."
4
82
535
1
4
121
@drosenwasser
Daniel Rosenwasser
4 years
No, I'm sorry, I don't have a joke about TypeScript - maybe you need to install the right .d.ts files first?
8
7
120
@drosenwasser
Daniel Rosenwasser
4 years
@sebmck @SeaRyanC It was supposed to be a surprise but I guess now's a good time as any to announce that I'm about a month into writing a TypeScript compiler in COBOL.
Tweet media one
6
12
116
@drosenwasser
Daniel Rosenwasser
7 years
Babel 7 beta now brings TypeScript support! Awesome collaboration between our teams over the last few months!
@left_pad
henry
7 years
Just published a post for the first @babeljs 7.0 beta release
10
123
225
5
57
109
@drosenwasser
Daniel Rosenwasser
4 years
In case you missed JavaScript Twitter this past weekend.
4
9
109
@drosenwasser
Daniel Rosenwasser
5 years
Funny story about this one. About a year back, we started consistently hearing that TypeScript's error messages were a huge problem. Eventually, @fdsmars , @WesleyWigham , @sheetalkamat , and I started having UX syncs.
4
30
114
@drosenwasser
Daniel Rosenwasser
3 years
⚡ JavaScript tip ⚡: I like to put the property name on the right side of the dot operator. // ❌ sometimes errors??? log.console("hi") // ✅ Works! ☺️ console.log("hi")
10
4
104
@drosenwasser
Daniel Rosenwasser
6 years
What are some editing features you wish you had for JavaScript & TypeScript? Quick fixes? Refactorings? In case you didn't know, @typescriptlang is the engine that powers those JavaScript features in @code and @VisualStudio , so we can make it happen!
47
35
92
@drosenwasser
Daniel Rosenwasser
5 years
Sister: "good luck with your presentation on the execution of the nulls or whatever."
8
3
101
@drosenwasser
Daniel Rosenwasser
5 years
@natfriedman Make it customizable like myspace and let us add auto-playing music, marquees, and custom cursors 🙃
1
1
90
@drosenwasser
Daniel Rosenwasser
4 years
This is one of those UUIDs my girlfriend keeps generating right?
12
3
89
@drosenwasser
Daniel Rosenwasser
5 years
Finally got around to posting my proposal for our next big UX improvement in @typescriptlang . I really think --noExplicitErrors is going to be the flag that makes TypeScript approachable for all JavaScript users.
11
21
87
@drosenwasser
Daniel Rosenwasser
8 months
When I hit a GitHub issue in this state, it's impossible to explore. Each load is impossibly slow and the UI slows down to a crawl. Is there any sort of workaround? I'd even take a raw text view if possible.
Tweet media one
12
1
91
@drosenwasser
Daniel Rosenwasser
6 years
TypeScript: welcome to flavor town.
@typescript
TypeScript
6 years
Congrats to our friends on the @babeljs team for releasing Babel 7.0! One of the biggest features in this release is support for transforming TypeScript! Read more here:
Tweet media one
11
670
2K
2
10
83
@drosenwasser
Daniel Rosenwasser
10 months
Today we released TypeChat: an experimental library that makes it easy to get well-typed structured data! This makes it way easier to build natural language UIs: take a user request, turn it into JSON, validate with the user that it's what they want. ✅
2
17
86
@drosenwasser
Daniel Rosenwasser
8 months
Please don't do this! It is harmful and unnecessarily alienates people.
@slicknet
Nicholas C. Zakas
8 months
As someone who was attacked online for days after saying that the ESLint rewrite would not be in TypeScript, I can verify that there is a fairly aggressive pro-TypeScript faction online. We need to stop attacking people for language or framework choices. It’s dumb.
62
107
1K
3
8
85
@drosenwasser
Daniel Rosenwasser
4 years
- Everyone should use this code formatter! - Why? I don't like the way it formats code. - Well it's a compromise... - But I don't like it. - Look, just use the formatter and you don't have to have arguments about code style. - But we're having the argument right now. This is it.
10
11
72
@drosenwasser
Daniel Rosenwasser
4 years
"That's an interesting proposal. So which OKR are you trying to target with this?" "Huh. Well we were just trying to work on useful features. Why, what are you trying to do?"
5
5
74
@drosenwasser
Daniel Rosenwasser
7 years
OH at TC39: "I don't know what you mean by a more general integer type, this one already has all the integers in it."
6
14
69
@drosenwasser
Daniel Rosenwasser
5 years
2.a. Give feedback to the team so that the errors aren't bizarre anymore! We've been actively focusing on improving the UX for a while now
Tweet media one
Tweet media two
Tweet media three
Tweet media four
@thekitze
kitze 🚀
5 years
1. don't use types and waste time on fixing bugs 2. use types and waste time on fixing bizarre compiler errors
14
14
132
5
14
76
@drosenwasser
Daniel Rosenwasser
3 years
@typescript Wow TypeScript Twitter person you're like the funniest! I can't believe you work on Sundays.
6
1
74
@drosenwasser
Daniel Rosenwasser
7 years
I was tempted to work "TypesCrypt" into the tweet but I felt like my team was sufficiently embarrassed. *Anyways*, go get TypeScript 2.6!
@typescript
TypeScript
7 years
IT'S ALIVE! TypeScript 2.6 is here with spooktacular strictFunctionTypes and other scary-good features!
7
511
802
3
10
68
@drosenwasser
Daniel Rosenwasser
5 years
Every example that uses arrays needs to be updated *right now*.
@qntm
qntm
5 years
A group of hedgehogs is called an array, which means that everything in an array is a hedgehog, I don't make the rules
Tweet media one
80
2K
6K
9
19
69
@drosenwasser
Daniel Rosenwasser
5 years
People who use classes in TypeScript/JavaScript - please give this a shot. We want to make sure we're rolling this out in the least disruptive way and we need feedback.
@sanders_n
Nathan Shively-Sanders
5 years
Big new breaking changes are coming in Typescript 3.7 to get ready for the class fields feature in Ecmascript. If you have a big OO code base you'll want to try out these two PRs NOW. Explanation follows.
2
64
120
4
27
67
@drosenwasser
Daniel Rosenwasser
4 years
A lot of people have been excited about type-only imports/exports coming in TypeScript 3.8. The truth is that you shouldn't really need them most of the time (or maybe even ever).
6
7
70
@drosenwasser
Daniel Rosenwasser
5 years
Imagine comparing someone to a Holocaust denier because you don't like JavaScript
5
2
66
@drosenwasser
Daniel Rosenwasser
7 years
Our team lost about a half hour of work because I brought in fidget spinners. Sorry if your favorite feature doesn't make it to TS 2.6.
7
1
63
@drosenwasser
Daniel Rosenwasser
5 years
A chart of TypeScript's growth in the State of JS Survey since 2016. Users who would use TypeScript again has jumped a decent amount every year (~13% each year, now at ~47% in 2018). Users who would not use TypeScript again has remained at just around 5%.
Tweet media one
9
30
69
@drosenwasser
Daniel Rosenwasser
2 years
@jlongster Sorry you had that experience. From the team's perspective, we recognize it's not going to be the right tool for every job. Unfortunately I think a lot of discussions online just end up attracting extreme opinions.
4
1
66
@drosenwasser
Daniel Rosenwasser
5 years
Type systems don't get enough credit as signs of humility.
4
7
63
@drosenwasser
Daniel Rosenwasser
7 months
Friends, in the last few days I've been sharing a lot around the massacres in Israel. No doubt, many of you feel may uncomfortable for one reason or another. Let me get into this.
1
3
68
@drosenwasser
Daniel Rosenwasser
6 years
The TypeScript + Babel collaboration has been nothing but goodness. Super glad @left_pad got to visit us.
@left_pad
henry
6 years
Had a really good chat with some of the @typescriptlang team: talking about interop, our continued partnership on the TS babel plugin, TC39 proposals, and just about oss maintainance! Thanks to @drosenwasser for setting that up; awesome to finally meet you, @fdsmars , @ahejlsberg !
4
6
83
0
13
62
@drosenwasser
Daniel Rosenwasser
2 years
Anyone given Nx a shot to manage multiple projects/monorepos? I haven't gotten the chance to use it myself, but I do really appreciate that TypeScript and the editor integration are first-class citizens.
@victorsavkin
Victor Savkin
2 years
Nx - The build system for TypeScript that TypeScript deserves. I've been working on toolable JavaScript for about 10 years, so this is something I'm excited to announce. @NxDevTools @typescript #typescript
7
64
309
21
11
62
@drosenwasser
Daniel Rosenwasser
7 months
My stomach is in a knot over what is happening in Israel. I am horrified over the the stories and photos and videos. I am scared for my family and friends.
2
1
64
@drosenwasser
Daniel Rosenwasser
1 year
@AdamRackis In order of annoying: - No non-null assertions - No type import syntax - No module-level scope for types - Can't really leave comments in your JSDoc types - "object" = "any" by default
7
4
63
@drosenwasser
Daniel Rosenwasser
5 years
- Hi, just sign in! (: - No, idiot, your LIVE account, not your MICROSOFT account. - No, idiot, your MICROSOFT account, not your LIVE account. - Do you want to authenticate with these two methods or- haha JK! This is a redirect page. (: - Okay here's the correct 2FA prompt.
2
3
60
@drosenwasser
Daniel Rosenwasser
4 years
Merged a nice (and overdue) improvement to TypeScript errors from @JoshuaKGoldberg . The idea is to use base types when the literal types just add noise.
Tweet media one
5
3
55
@drosenwasser
Daniel Rosenwasser
5 years
Has anyone been running into slowness with JavaScript or TypeScript in @VisualStudio or VS @code ? Feel free to DM me!
23
14
59
@drosenwasser
Daniel Rosenwasser
5 years
The bang for the buck here was just great. All it takes is a few checks in error scenarios and the addition of an error message. That's incredibly cheap, and it helps *so many people* starting out with TypeScript!
2
0
58
@drosenwasser
Daniel Rosenwasser
5 years
How are you using regex in your app?
Incorrectly parsing text
135
I lie on Twitter polls
220
11
19
54
@drosenwasser
Daniel Rosenwasser
6 years
rm -rf / ^ the true debugger
6
7
52
@drosenwasser
Daniel Rosenwasser
7 years
One of the things I really liked about TS 2.3 is that we listened especially to our non-users. This drove things like --checkJs mode.
Tweet media one
1
23
54
@drosenwasser
Daniel Rosenwasser
4 years
(╯°□°)╯︵ ʇdᴉɹɔSǝdʎ┴
0
0
55
@drosenwasser
Daniel Rosenwasser
5 years
Users: Give us this shitty syntax, the current way to do this is terrible. Us: We can't, that would potentially conflict with future ECMAScript proposals. Users: Then give us syntax that's so shitty that TC39 would never ever want to use it. ????????
3
2
50
@drosenwasser
Daniel Rosenwasser
3 years
Many people are asking about how to combine the power of machine learning/AI with developer tools. Here is a slightly ambitious proposal for an Intelligent and Interactive TypeScript compiler.
4
12
55
@drosenwasser
Daniel Rosenwasser
4 years
What could your editor do so that you don't have to Google stuff like this? Better quick info/signature help? Something else?
@markdalgleish
Mark Dalgleish
4 years
Me: I'm a JavaScript expert. Also me: *Googles array slice*
113
887
5K
25
3
51
@drosenwasser
Daniel Rosenwasser
6 years
"Hey @ahejlsberg , what was your favorite part about #MSBuild ?"
Tweet media one
Tweet media two
1
6
51
@drosenwasser
Daniel Rosenwasser
5 years
At some point, someone had a really great dumb idea. All our errors get reported as error TSxxxx: Error message goes here. What if we just entered `error TS` and let Google suggest the rest?
Tweet media one
2
3
53
@drosenwasser
Daniel Rosenwasser
1 year
A follow-up to "var go brrrr"! I put together a write-up about why we switched a subset of our variables to 'var' in TypeScript and the cases in which it actually made a difference in runtime speed.
2
11
54
@drosenwasser
Daniel Rosenwasser
4 years
@johnny_reilly @robpalmer2 Honestly, my take is that it should really just be interfaces for anything that they can model. There is no benefit to type aliases when there are so many issues around display/perf.
5
5
52
@drosenwasser
Daniel Rosenwasser
4 years
@trivikram @typescript @rustlang @deno_land @rbuckton @atcb @orta @LichtmanLabs No plans, a port to Rust would lose 6 years of work on the new compiler, and API compatibility. We can't even make TypeScript asynchronous because of the API breaks and reimplementation complexity.
3
6
53
@drosenwasser
Daniel Rosenwasser
5 years
@SoftSavage @duncanmak I'm pretty sure at this point it's me working for SSO.
0
0
51
@drosenwasser
Daniel Rosenwasser
4 years
Lots of people unhappy about the fact that ECMAScript # privates don't use the 'private' keyword. I get it. That's why I prefix everything with 'private' anyway. Go from class C { ‍ #name = "hi"; } to class C { ‍ #privateName = "hi"; } Get the best of both worlds! (:
13
4
50
@drosenwasser
Daniel Rosenwasser
5 years
Heard joke once: Man goes to TypeScript repo. Says he has a design proposal. Makes JavaScript better. Maintainer says "Witnessable runtime behavior. That's great. Find a TC39 member to champion it for you." Man bursts into tears. Says "But @‍DanielRosenwasser, *you're* on TC39!"
2
1
48
@drosenwasser
Daniel Rosenwasser
5 years
How do you balance your job responsibilities with how funny you think you are?
Tweet media one
2
2
49
@drosenwasser
Daniel Rosenwasser
4 years
@hmemcpy The Language Server Protocol was inspired by TS Server and then became a community standard that the VS Code team drove. This enabled a bunch of languages like Rust and Scala to have cross-platform editor support. LSP is crucial so many dev tools nowadays.
1
1
47
@drosenwasser
Daniel Rosenwasser
3 years
Not sure if I did some kind of disservice. I specifically worked to champion ?. and ?? in *JavaScript* so that they would not be weird one-off additions to TypeScript. People have still been calling them TypeScript operators.
@AdamRackis
Adam Rackis
3 years
@TejasKumar_ Indeed, but why'd you call it the TypeScript double question mark? That's vanilla JS baby!
1
1
22
9
8
50
@drosenwasser
Daniel Rosenwasser
7 years
We just released #TypeScript 2.4! Check it out!
@typescript
TypeScript
7 years
TypeScript 2.4 is here and brings dynamic import(), string enums, and better inference! Read up on our release blog!
7
513
576
0
18
46
@drosenwasser
Daniel Rosenwasser
1 year
What is this? It's a 10% reduction in parse time by swapping shared closure variables from let/const to var. Why does that happen? 'var' avoids use-before-initialization checks that engines are mandated to do.
3
4
49
@drosenwasser
Daniel Rosenwasser
6 years
If you were wondering what sort of cool stuff our summer intern was up to, here it is 🎉😎 We're hoping that this makes migrating to async/await much much easier.
@eadinella
Elizabeth Dinella
6 years
Check out my new @typescriptlang proposal for refactoring Promise methods to use async/await
15
54
260
4
5
48
@drosenwasser
Daniel Rosenwasser
4 years
This has bothered me SO much for Node projects and I'm glad it's finally coming in 3.9.
@atcb
Andrew Branch
4 years
Of the TypeScript features I’ve worked on, this may be the one I’m personally most excited to use: better support for `require` in auto-imports for plain JS.
8
35
188
1
10
47
@drosenwasser
Daniel Rosenwasser
4 years
@LordHanson @jntrnr @TypeScriptConf @typescript I wasn't there when the project first started either, but Luke had a great blog post about some of the history there which actually turns out to be pretty funny
1
11
47