DEV Community

Mago AcadĂŞmico
Mago AcadĂŞmico

Posted on

6

🧙‍♂️ Tutorial Typescript para Iniciantes

Nesse artigo você irá aprender o básico do Typescript.

Está incluso:

  • Declarar variáveis
  • Objetos com tipos e interfaces
  • Arrays e tuplas
  • Funções

É bom que você saiba pelo menos o básico do Javascript ou de alguma outra linguagem de programação.

Tipos Básicos do Typescript.

O primeiro conceito que você precisa entender são os tipos básicos do Typescript.

No Javascript, existem classes (que nĂŁo sĂŁo a mesma coisa que tipos) para strings, booleans, arrays, etc. Essas classes do Javascript sĂŁo diferentes do tipos do Typescript.

As classes do Javascript começam com letra maiúscula e os tipos do Typescript com letra minúscula.

//  Tipo TS \/    
cont foo: string = String('foo') 
//                   /\ Class JS
Enter fullscreen mode Exit fullscreen mode

Você até pode usar a classe como sendo o tipo no Typescript, mas o recomendado é usar com letra minúscula.

//         \/ Funciona, mas nĂŁo Ă© recomendado    
cont foo: String = String('foo') 
Enter fullscreen mode Exit fullscreen mode

E os tipos básicos do Typescript são

  • string
  • boolean
  • number
  • null
  • undefined

Existem outros tipos, mas por enquanto esses são os básicos

Declarando Variáveis

Com esses tipos básicos, você pode declarar variáveis da seguinte forma:

const foo: string = 'foo'
const num: number = 123
const check: boolean = true
Enter fullscreen mode Exit fullscreen mode

Na maioria dos casos, se você não passar o tipo da variável, o Typescript vai inferir o tipo automaticamente.

// Typescript já saberá que 'num' é do tipo number
const num = 123
Enter fullscreen mode Exit fullscreen mode

Objetos com Tipos e Interfaces

Existem dois jeitos de definir um tipo para um objeto.

VocĂŞ pode usar type

type Foo = {
   prop1: number
   prop2: string
}
Enter fullscreen mode Exit fullscreen mode

Ou usar interface

interface Foo {
   prop1: number
   prop2: string
}
Enter fullscreen mode Exit fullscreen mode

Existe uma certa diferença entre type e interface, mas os dois podem ser usados um no lugar do outro na maioria dos casos. Para iniciantes eu recomendo usar qual você preferir e aprender depois a diferença quando chegar em algo mais avançado.

E vocĂŞ usa esses tipos ao declarar objetos da seguinte forma:

const foo: Foo = {
  prop1: 123,
  prop2: 'abc'
}
Enter fullscreen mode Exit fullscreen mode

VocĂŞ pode definir uma propriedade opcional no tipo do seu objeto usando o ? antes do :.

interface Foo {
   prop1: number
   prop2?: string
}
Enter fullscreen mode Exit fullscreen mode

Assim, vocĂŞ poderia criar um objeto sem passar prop2, pois ela Ă© opcional

const foo: Foo = {
  prop1: 123,
  // nĂŁo da erro se vocĂŞ nĂŁo passar prop2
}
Enter fullscreen mode Exit fullscreen mode

Definindo Array e Tuplas

Para definir um array, vocĂŞ pode passar [] depois do tipo do array.

//                \/ Array de string
const strs: string[] = ['foo', 'FOO']

//             \/ Array de "Foo"s
const foos: Foo[] = [{ ... }]
Enter fullscreen mode Exit fullscreen mode

Você também pode definir uma matrix (array de array) passando [] novamente

//                \../ Matrix de strings
const strs: string[][] = [['foo'], ['FOO']]

//             \../ Matrix de "Foo"s
const foos: Foo[][] = [[{ ... }], [{ ... }]]
Enter fullscreen mode Exit fullscreen mode

Outra forma de criar um array é usando o tipo Array, que ira receber o tipo do array através de um parâmetro genérico.

Talvez essa parte já seja um pouco mais avançada, mas Generics é um conceito muito importante para aprender que existem em varias linguagens de programação. Eu fiz um video no youtube sobre Generics que explica desde como surgiu e para o que server Generics que irá ficar bem fácil de entender.

//           \/ Array de string
const strs: Array<string> = ['foo', 'FOO']

//           \/ Array de "Foo"s
const foos: Array<Foo> = ['foo', 'FOO']
Enter fullscreen mode Exit fullscreen mode

Uma outra forma de definir um array Ă© definindo uma Tupla (Tuple em inglĂŞs).

Uma Tupla é um array em que o numero de elementos é fixo e os tipos de cada elemento também são fixos

Abaixo temos uma tupla, que possui dois elementos, onde o primeiro Ă© uma string e o segundo Ă© um numero.

const tupla: [string, number] = ['foo', 123]
Enter fullscreen mode Exit fullscreen mode

VocĂŞ pode definir quantos elementos quiser na sua Tupla, basta continuar acrescentando tipos.

const tupla: [string, number, boolean, Foo, ...] = [ ... ]
Enter fullscreen mode Exit fullscreen mode

Funções

Ao criar uma função no Typescript, você pode definir os tipos dos parâmetros e o tipo do retorno da função.

//   Tipo do parâmetro \/      \/ Tipo do retorno da função   
const setFoo = (bar: string): void => {}
Enter fullscreen mode Exit fullscreen mode

void é um tipo especial que significa que a função não retorna nada.

Se você não passar o tipo do retorno da função o Typescript irá inferir automaticamente o que está sendo retornado.

//   Sem o tipo do retorno \/ 
const getFoo = (bar: string) => {
  // Typescript irá inferir que essa função retorna 'number'
  return 123
}
Enter fullscreen mode Exit fullscreen mode

Se vocĂŞ tiver alguma duvida, comente aqui em baixo que eu vou responder vocĂŞ pessoalmente.

Se vocĂŞ prefere assistir o conteĂşdo desse artigo, eu fiz um video no youtube com o mesmo conteĂşdo:

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

đź‘‹ Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay