CARVIEW |
Select Language
HTTP/2 200
date: Sat, 11 Oct 2025 11:24:46 GMT
content-type: text/html; charset=utf-8
cache-control: max-age=0, private, must-revalidate
cf-cache-status: DYNAMIC
link: ; rel=preload; as=style; nopush,; rel=preload; as=script; nopush,; rel=preload; as=style; nopush,; rel=preload; as=script; nopush,; rel=preload; as=script; nopush
nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
referrer-policy: strict-origin-when-cross-origin
report-to: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=kS%2FUqkwhn9GDe0FxQFQts5uT7zBSfphyRelcbtZR7rA%3D\u0026sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d\u0026ts=1760181886"}],"max_age":3600}
reporting-endpoints: heroku-nel="https://nel.heroku.com/reports?s=kS%2FUqkwhn9GDe0FxQFQts5uT7zBSfphyRelcbtZR7rA%3D&sid=e11707d5-02a7-43ef-b45e-2cf4d2036f7d&ts=1760181886"
server: cloudflare
strict-transport-security: max-age=0; includeSubDomains
vary: Accept,Accept-Encoding
via: 2.0 heroku-router
x-content-type-options: nosniff
x-permitted-cross-domain-policies: none
x-request-id: 6bd30ce3-06db-425a-0eda-f07a31493892
x-runtime: 0.132921
x-xss-protection: 0
content-encoding: gzip
set-cookie: _secure_speakerd_session=5yoyn7dkti2nqeeJzsQfUnSHTv3GmcNcu5SGSXgtmQOvHOaBpQoUz3vrcDxsYju4Abs5DMbW7C6UtgpCwsTzLcJwQukmMB%2BB4AxRDI3XQxClQRoncPQih3qQJFrXHq10uTGYBMfveCJoogvxyq4xjuaVFNNM4f9r4RGalKfRv0U84mrCVX%2BvG09oHoa0zfEuUp1%2B%2BL%2FcQJ3%2Fy21qv%2BuXC2fBBsBPd0Ffx%2BkV959D%2BN%2FvWmnqc6iFNxJvyxJiZeob%2FBzMLfTbK6lCnpJdvW27KZKVQwLbJEFxGHbNf%2BI6fGMnNozY5LKhny1mVOIEkPLGqHGcLwaBS59oG7EgSHmEAycoAAvxT1ZT05FItLjVtVRFBU3p%2FWU416FpyXt5P%2FdHg79au6Qe6EWjmBIZXjfF3kl%2B--IHFgNvqSI7IJ0HY0--Nn66Iz9eMlzpwkOcqXW7Bw%3D%3D; HttpOnly; SameSite=Lax; Secure; Path=/; Expires=Sat, 25 Oct 2025 11:24:46 GMT
cf-ray: 98cdfe2f08c6b155-BLR
JavaScriptures 2 - TypeScript - Speaker Deck
More Decks by Artsy Open Source
Other Decks in Programming
Featured
Transcript
-
TypeScript And let it divide the interface from the code
JavaScriptures II Eloy and Sarah -
• It can make stepping into new repos less daunting
Easier to get acclimated to new repos -
• When developing in TS (as opposed to normal JS),
it’s clear what exactly one expects to happen Keeps code clear -
• It’s nice to be able to easily see the
schema of an application as opposed to maintaining it in your head as you go along Speeds up some parts of the dev process -
• When you change something about your schema, you can
immediately see where breaking changes exist because the type checker will throw errors Allows you to catch errors sooner -
• Currently involves (at least in our case) a complex
dance between Babel, Webpack, Node, Jest, and possibly more. However, as we move more projects to Babel 7, we can drastically simplify this by utilising its ability to parse TypeScript code. • To debug this sort of thing, one has to look at the docs and github issues of several different projects; there is no singular resource for TS tooling (although our Artsy Engineering blog post on the topic comes close) Setting up tooling can be tedious -
• Most JS projects won’t. • Over 4000 community maintained
type declarations at github.com/DefinitelyTyped/DefinitelyTyped. E.g. @types/react on NPM. • Details on how to write type declarations can be found here: www.typescriptlang.org/docs/handbook/declaration-files/introduction.html Libraries may not come with TS types