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
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')
E os tipos básicos do Typescript são
stringbooleannumbernullundefined
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
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
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
}
Ou usar interface
interface Foo {
prop1: number
prop2: string
}
Existe uma certa diferença entre
typeeinterface, 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'
}
VocĂŞ pode definir uma propriedade opcional no tipo do seu objeto usando o ? antes do :.
interface Foo {
prop1: number
prop2?: string
}
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
}
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[] = [{ ... }]
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[][] = [[{ ... }], [{ ... }]]
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']
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]
VocĂŞ pode definir quantos elementos quiser na sua Tupla, basta continuar acrescentando tipos.
const tupla: [string, number, boolean, Foo, ...] = [ ... ]
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 => {}
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
}
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:
Top comments (0)