William Grasel

Inferência de tipos é o real motivo do TypeScript existir!

Pare de tipar coisas desnecessariamente!

Strict Mode + ESLint neles!

no-inferrable-types

Quando vale a pena tipar:

let notInicialized: number;

let letMultipleValues: number | string = 'some string';

const mutableValue: { a: number | string } = { a: 666 };

Começando a usar inferência mais avançada...

As vezes precisamos dar mais dicas sobre como e o que inferir!

As vezes precisamos deixar as coisas mais... genéricas!

Generics é seu melhor amigo!

Promise do que?

class UserService {
  getAllUsers() {
    return fetch('/users');
  }
}
interface User {
  id: number;
  name: string;
  age?: number;
}

class UserService {
  getUsers(): Promise<User> {
    return fetch('/user');
  }
}

Criando tipos genéricos

Restringindo tipos genéricos

Passando genéricos como parâmetro!

Genéricos especializados

Genéricos dinâmicos

Que tal um pouco de recursividade?

Não é tão difícil assim...

Vamos falar sobre Tuplas!

Variadic Tuples ❤️

Tuplas Recursivas!

Inferencia Recursiva!

Impondo limites a recursividade

Vamos respirar um pouco...

Strings são bem simples

As vezes nem tanto...

Ah, nem é tão complicado assim...

Prometo que essa é a ultima!

Quem aí...

Espero que tenham se divertido!

Obrigado! =)

Explodindo sua mente com TypeScript

By William Grasel

Explodindo sua mente com TypeScript

Não tem mais discussão, TypeScript já é uma unanimidade na comunidade, mas que tal sair um pouco do básico, do feijão com arroz do dia a dia, e sentir um pouco do verdadeiro poder do TypeScript? Que tal conhecer algumas das features mais avançadas, fazendo coisas que você provavelmente nem imaginava que era possível? Essa palestra é para explodir sua mente, fazer você pirar e sentir vontade de se aprofundar ainda mais, nessa ferramenta Open Source maravilhosa que mudou a forma como escrevemos nosso querido JavaScript.

  • 1,120