Slide 1

Slide 1 text

TypeScript tips that could save your life

Slide 2

Slide 2 text

who am I_ {twitter, youtube, linkedin…}.lsantos.dev software engineer_ hello@lsantos.dev

Slide 3

Slide 3 text

typescript can be tricky sometimes

Slide 4

Slide 4 text

so let's cut to the chase_

Slide 5

Slide 5 text

tsconfig extension_

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

It's not only for bases

Slide 12

Slide 12 text

It's not only for bases

Slide 13

Slide 13 text

type_ testing

Slide 14

Slide 14 text

one native way: *.typetest.ts files

Slide 15

Slide 15 text

one native way: *.typetest.ts files https://lsantos.dev/keychain-pull

Slide 16

Slide 16 text

the (more) native way

Slide 17

Slide 17 text

vitest

Slide 18

Slide 18 text

tsd https://lsantos.dev/tsd-lib

Slide 19

Slide 19 text

move errors to types

Slide 20

Slide 20 text

instead of this

Slide 21

Slide 21 text

do this

Slide 22

Slide 22 text

branded types_

Slide 23

Slide 23 text

UUIDs are the perfect example

Slide 24

Slide 24 text

to brand a type

Slide 25

Slide 25 text

to brand a type

Slide 26

Slide 26 text

even better

Slide 27

Slide 27 text

but well… Why isn't this working

Slide 28

Slide 28 text

but well… Why isn't this working To be continued…

Slide 29

Slide 29 text

but there's another example

Slide 30

Slide 30 text

type guards_

Slide 31

Slide 31 text

but well… Why isn't this working

Slide 32

Slide 32 text

now we have something

Slide 33

Slide 33 text

but this if…

Slide 34

Slide 34 text

assertion functions

Slide 35

Slide 35 text

assertion out of tests

Slide 36

Slide 36 text

understand your enums_

Slide 37

Slide 37 text

enums produce valid JavaScript

Slide 38

Slide 38 text

enums produce valid JavaScript

Slide 39

Slide 39 text

numeric enums

Slide 40

Slide 40 text

string enums

Slide 41

Slide 41 text

constant enums

Slide 42

Slide 42 text

constant enums

Slide 43

Slide 43 text

obrigado_ lsantos.dev