๐ I* did it! I'm a published author! ๐
*Lots of people helped to make this beautiful thing possible -tech reviewers, editors, mentors, friends, etc.- see acknowledgements in the book! ๐
@LearningTSBook
I have converted dozens of projects to TypeScript at this point, and in *every single one* there have been multiple bugs found as a result.
Every! Single! One!
Introducing : a cute lil retro/8bit helper for choosing a JavaScript UI framework. ๐น
๐ป The game is built on a custom game engine made for retro games, and the whole site takes up <256 kB *uncompressed*. โก๏ธ
#javascript
#angular
#react
#solid
#svelte
#vue
I HATE when devs start ask for help after only using ChatGPT to get started using frameworks/libraries - instead of reading the first party docs.
ChatGPT is often wrong about code. It's an assistant, not a replacement for documentation!!! ๐ก๐ก๐ก
wasting my goddang time
@sebmck
@brave
Brave is honestly such a disappointment these days. All many of us wanted was Chrome with privacy strictness instead of the bad off-putting parts. And instead they do aggressive marketing and a bunch of crypto shenanigans. Disconcerting.
๐คฉ Thrilled & grateful - I've been selected as a 2023 Microsoft MVP for Developer Technologies!
MS MVPs are folks who "passionately share their knowledge with the community". A big goal of my TypeScript journey for years! โจ
#community
#microsoft
#mvp
#opensource
#typescript
Holllyyyyy cow,
@TypeScript
's next version is going to have recursive (conditional) types!
This is GREAT news for any consumer of the language, and REALLY GREAT news for my TSConf 2020 talk.
Language matters. The way we describe our code matters.
@mattpocockuk
talked about how loaded the word โgenericโ is. TypeScripy can get scary, but Matt knows how to tame it. A hint? Generic types require type arguments.
This is a huge joy and thrill for me. ESLint is one of my favorite projects - and it's a key part of the JavaScript ecosystem.
Being able to help push it forward as a member of the committer team is a dream come true. Seriously.
Thank you
@geteslint
folks! โค๏ธโ๐ฅ
My yearly income milestones as an independent open source person:
* 2022: minimum wage for NYC (~$35k/year)
* 2023: livable wage for NYC (~$60k/year)
* 2024 goal: entry level software developer salary (~$100k/year)
goals.
My
@Nextjs
Conf submission wasn't accepted, but it brought a lot of joy to make and I think deserves to be shared.
Submission: TypeScript & Next.js best practices. ๐ป feat. Jerry the cat (meows start at 0:32)
My Learning TypeScript book is in production now!
That means it's freaking โจDONEโจ. Authoring, editing, freaking-out-about-the-typos-and-missed-topics complete.
Next steps:
โ Have a nice sushi+sake dinner with a friend
โณ Finish setting up the companion site
โณ Promote!
My Learning TypeScript book is a ~month away from digital release. I'm *pumped* to introduce scores of JS devs to the joy of well-typed code.
Gentle reminder, an early preview of is available on O'Reilly's platform:
LMK what you think if you read it! ๐
Got my first PR merged into
@trpcio
๐. No user-facing features, just enabling a bunch more
@tseslint
rules & touching up the linting tooling. A good start!
Thanks
@alexdotjs
@jullerino
for the reviews! ๐
The next
@typescript
version will have ts-expect-error assertions! ๐โจ
Like ts-ignore, but they'll fail if there *isn't* an error. Superior in almost every way!
Thanks
@orta
for help on getting this merged ๐
It's wild how many TypeScript features seem essential now but only came out after 2.x or 3.x. Conditional types, recursive types, mapped tuples -- none of these were available 5 years ago!
TSLint 6.1 released with TypeScript 3.8 support!
Unless you are a giant multinational corporation with massive needs hardcoded to TSLint's source, you should switch to ESLint. ๐๐๐๐๐๐๐
Announcing: I'm writing an
@OReillyMedia
book on introductory
@TypeScript
! ๐
โจ It's targeted to devs who can write JavaScript but don't necessarily have compiled / type language experience. โจ
We're tentatively calling in "Learning TypeScript" or "Beginning TypeScript".
We (
@tseslint
) just received an impromptu $10,000 donation from
@geteslint
- on top of their regular $150/mo sponsorship. Incredible. Thank you so much friends!๐
This debate on using explicit return types in TypeScript is foolish. You shouldn't be using functions in the first place. Just write all your logic in the type system like a real 10x developer. No runtime code, ever. โก๏ธ
Words cannot explain how excited I am to close-as-wontfix 50 issues tonight. Incredibly exhilarating to slowly continue the killing of
#tslint
.
#typescript
๐ It's time! ๐
I switched a TypeScript project's Jest tests from Babel to SWC and test performance improved by up to 40%. Beautiful.
Here's why and how to make the change (it's actually really straightforward!):
@kentcdodds
The "original sin" of module resolution was ambiguous imports. Ambiguity of "import thing from './thing'" (is it ./thing.js? ./thing/index.js? etc.) led to the situation we're in today.
btw if you say 'module resolution' two more times in the dark,
@atcb
appears
Gentle reminder that as an independent open source maintainer, I rely on community & corporate sponsorships to get work done.
Please sponsor me on GitHub: . It lets me fix bugs, add features, etc. instead of falling back to consulting time. Thanks ๐
๐ New blog post: "You Probably Don't Need eslint-config-prettier or eslint-plugin-prettier"
I get a lot of questions about the differences between the two tools and when you'd want them.
tl;dr: they're different & ideally you shouldn't need either.
๐งน
Now that Microsoft is hiring people for AI they should really give me an offer to write a JavaScript to TypeScript converter powered by AI. Could probably do a pretty good job of it
Hello everyone! Allow me to re-introduce myself, since it's been a while.
I'm a full time open source developer from New York. I work on tooling around TypeScript and general web development. I'm the author of
@LearningTSBook
-out now!- and stream on Twitch 2x a week.
1/๐งต
๐งน New blog post on getting formatting<>linting<>type-checking together in a JS/TS project!
Lots of juicy code bits and protips in it, based off my
@ReactMiamiConf
2023 talk.
โจ โจ
LMK if you have any questions - there's an attached FAQ article too! ๐
We're excited to announce that we will soon be combining with
@Codecademy
. Together, we will prepare the workforce of today with the skills for tomorrow and make learning more accessible and inclusive for all.
Visit to learn more.
I wrote a
@PrettierCode
plugin today โบ๏ธ never done this before, but I've wanted my formatter to enforce using curly brackets for ages!
Not confident I got the parsing logic all correct, but hey - I hope it beats using a linter as a formatter! ๐
@Codecademy
is hiring paid fall apprentices/fellows/interns!!! ๐๐บ๐
Bootcampers, self-taughters, college students, and whoever-else all welcome! We have excellent goals and amazing tech that you'll have a superb time working with!
Apps open:
๐ฃ There's another TypeScript conference happening! And it's got a CFP open!! ๐ฅ๐ฅ๐ฅ
- please send in all your TypeScript thoughts! We want to hear it all!
Let me know if you're unsure of what or whether to submit - I'm happy to workshop with you. ๐
โผ๏ธ I'm moving to Boston and starting a TypeScript meetup!
Our first event is on April 18th at NERD. It's going to be a great time: TypeScript, talks, community goodness. Free & open to everyone with interest in JavaScript/TypeScript. ๐
#boston
#javascript
#meetup
#typescript
Heyall I wrote a
@github
ReadME Guide!! Stoked about this - it's a thrill to explain the 'how' and 'why' of static analysis tools that every repo should use.
โจ Formatters, Linters, and Compilers: Oh My! โจ
Thanks GH folks for the opportunity! ๐
IMO one interesting part of the React canary situation is seeing non-Next.js folks (esp Remix) communicate the issues. They need to explain the problems clearly and at scale. That's really hard to do without devolving the conversation into angry name-calling.
1/2
So, React recommends:
- you should use a framework with React
- frameworks should pin to a canary version of React in order to take advantage of the latest โstableโ features that do not yet appear in a stable release
I have no idea how this is going to play out in the Remixโฆ
I finally finished a 2.0 of my personal site! ๐ฅณ
Designed in
@figma
; implemented with
@astrodotbuild
,
@solid_js
, and
@typescript
.
I'm honestly relieved to get this thing out the door. ๐ฅฒThe old site wasn't scaling well to the amount of stuff I've done.
Almost ready to swap my personal site over from an old hand-written one to a new Astro+Solid+TypeScript revamp. ๐
It's been a long time coming (months!) - very excited to finally get it to 1.0 ~ this week!
The TypeScript documentary (!!!) is out now! ๐ฅณ
It was a thrill being a part of it. Both the day of interviewing (they bought me a cheesesteak in exchange for running up and down the rocky stairs!) and getting to see its behind-the-scenes progress. ๐
cannot wait to be back home and able to really post about it, but tl;dr:
* DefinitelyTyped is now all formatted with dprint
* A bunch of old TSLint rules were removed in the process
* Contributing to DT should now be easier w.r.t. formatting, since it's applied for you instead
๐
@tseslint
now uses
@playwrightweb
(and aXe ofc) for end-to-end testing!
Shoutout
@debs_obrien
for pressing the merge button ๐ค๐ฅ. A full half day + before giving a talk on Playwright at
@BrusselsReact
. Frontend development moves fast!
I set up a new Docusaurus site and deployed it to Vercel today. I spent 30 minutes customizing and playing with it, and maybe 2 minutes at most setting up the system.
Modern web dev has some great things going for it! โจ
Still incredible and humbling*: had a line at my
#AllThingsOpen
@LearningTSBook
signing. Hope you all enjoy the book & learning TypeScript! ๐๐ฅฒ
*actually this is hugely inflating my ego heh
In the span of 24 hours, I was...
* told my "centering a div" article was excellent (which it was
@JoshWComeau
)
* given
@TejasKumar_
's book and asked to sign my name, Josh Kumar
* see below
๐
๐ It took 5 (!) lines of code to enable the new View Transitions API for all pages on my personal site with Astro. Incredible.
The web platform takes its time, but often it gets things *so right*. Plus
@astrodotbuild
's API on top is clean and joyous. ๐ฅฐ
@trashh_dev
Fun fact: you can set eslint.rules.customizations in the .vscode/settings.json for a repo to change all ESLint complaints to a different squiggly color. That way you can know whether your issues are from ESLint and/or TS more easily.
One of the biggest perception problems with linters IMO is that devs see them as annoying style guide checkers, not as a powerful bug prevention technique.
I'm hoping the work we're doing on
@tseslint
the next few months -particularly on docs and new rules- helps change that.
I've applied to >100 conferences and spoken at about a third of them. Prospective or first-time speakers often ask me for advice - so, finally, here's a walkthrough for how I apply to conferences along with FAQs. I hope you find this helpful! ๐ฃ๐
I am SO PROUD of the work we did here. The v6 PR was opened in October 2022 and accumulated +90k/-29k lines.
Now that v6 is stable I get to spread it to my template config & other repos I touch. And we get to work on some truly groundbreaking long-term performance work. YES. โค๏ธโ๐ฅ
๐ typescript-eslint
@v6
is now released as stable!
It contains a plethora of new features, revamped preset configs, and API improvements that you're sure to love. โก๏ธ
Try it out today - and let us know how it goes!
I want to give a big shoutout to
@arismarko
(organizer,
@cityjsconf
). Aris puts a lot of thought and care into organizing community events and it shows. โค๏ธ
CityJS Athens last year was one of my favs. Both the conference and speaker events. Highly recommend!
Hi! ๐ I'm Josh, full time independent open source developer*.
I primarily work on
@tseslint
: the tooling that allows ESlint & Prettier to run on TypeScript. I've got a few other TypeScript-area projects, including a JS-to-TS converter. โค๏ธโ๐ฅ
1/๐งต*
Just had my offboarding interview at work... So of course I made & chugged an old fashioned.
Highlight of the interview was when they asked who the "shining stars" of Codecademy are and I just let LOOSE with a giant list of my coworkers ๐ฅฒ๐
@metruzanca
@marak
๐ค I'm not comfortable with that being the narrative here. I'm an open source maintainer myself, and if I wanted to make the correct and pressing point that we need to be compensated for labor, replacing the readme with a single line on Aaron Schwartz would not be how to do that.
I'm going to announce something super freaking exciting about myself and TypeScript tomorrow. It's gonna be amazing.
(no, I'm not quitting my day job at Codecademy, I love it here, come work with us)