.bind + TypeScript is a surprising escape hatch for type-safety


pic.twitter.com/rQ8sRILNND
This is the legacy version of twitter.com. We will be shutting it down on June 1, 2020. Please switch to a supported browser, or disable the extension which masks your browser. You can see a list of supported browsers in our Help Center.
JavaScript boy and “lovely thoughtleader”
he/him 
You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more
Add this Tweet to your website by copying the code below. Learn more
Add this video to your website by copying the code below. Learn more
By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.
| Country | Code | For customers of |
|---|---|---|
| United States | 40404 | (any) |
| Canada | 21212 | (any) |
| United Kingdom | 86444 | Vodafone, Orange, 3, O2 |
| Brazil | 40404 | Nextel, TIM |
| Haiti | 40404 | Digicel, Voila |
| Ireland | 51210 | Vodafone, O2 |
| India | 53000 | Bharti Airtel, Videocon, Reliance |
| Indonesia | 89887 | AXIS, 3, Telkomsel, Indosat, XL Axiata |
| Italy | 4880804 | Wind |
| 3424486444 | Vodafone | |
| » See SMS short codes for other countries | ||
This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.
Hover over the profile pic and click the Following button to unfollow any account.
When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.
The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.
Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.
Get instant insight into what people are talking about now.
Follow more accounts to get instant updates about topics you care about.
See the latest conversations about any topic instantly.
Catch up instantly on the best stories happening as they unfold.
.bind + TypeScript is a surprising escape hatch for type-safety


pic.twitter.com/rQ8sRILNND
Unclear why the original function signature can't be carried over. Feels like a technical limitation rather than a type system one. Flow has the same issue (although it handles it and related even worse).
Back compat. Bind used to be weakly typed for technical limitation reasons, now it works as expected under the --strict flag (which opts you in to new behavior) or specifically --strictBindCallApply
Will --strict ever be default? 


We haven't ruled it out, but I think it's easy to under-estimate how disruptive that might be. Do checkJs users want --strict? How many people will know to turn --strict off when migrating?
if they don’t, they can disable it. You can make the error messages describe how to shut it off, so everyone will know how.
We can't, though. The strict flags generally change *how the type system works* and you can't precisely or accurately predict whether any given error would have occurred with strict off
sure but you can still link to a page describing the differences, how to experiment with it, and educating, so they can make their own decision. you could also run two type checks in parallel at all times, one strict and one not, and then you *can* precisely know the difference.
My hunch is that users who don't necessarily want strictness off the bat are also less likely to read a page outlining the bells and whistles on it. Being lax by default was to accommodate users who are transitioning/aren't familiar with type systems. I could be wrong though!
I feel like this is one of the areas where the TypeScript teams values should be encoded in the defaults. A lot of people are willing to follow the defined cow path. Arguments against making it the default due to difficulty are moot since it’s just as easy to disable than enable.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.