Fala galera sejam muito bem-vindos a mais um vídeo aqui do canal dicas para devs o canal que traz para você programação 100 enrolação e hoje galera sem enrolação a gente vai aprender Type script Então a gente vai dominar essa linguagem que é extremamente popular no mercado cara não para de crescer e eu vou mostrar para você o porquê que ela é tão melhor do que o seu irmão mais velho vamos dizer assim que é o JavaScript mas antes da gente ir para o conteúdo vamos fazer aquele compromisso de sempre cara fica até o final desse
curso aqui e se esse curso agregar algum valor para você deixe seu joinha e se inscreve no canal porque isso me motiva muito cara você não tem noção como isso me motiva para continuar trazendo conteúdo nessa qualidade pra você beleza então vamos lá para o conteúdo de uma vez por todas vamos começar Então galera nos slides aprendendo a parte mais teórica do Type script e depois a gente vai para o código de fato Beleza então seja muito bem vindo esse curso aqui hoje a gente vai aprender script como eu falei é uma das linguagens mais
populares e mais requisitadas pelo mercado atualmente Então quando você adquirir essa Skill aqui você vai aumentar muito o seu valor aí no mercado Ela traz inúmeros benefícios em relação ao Java scr então é uma linguagem que como a gente vai ver foi feita em cima do Java script e aprimora muito o JavaScript você vai ver tudo essa aprimoramento estudo com mais detalhes hoje e leva as suas aplicações realmente para outro nível Beleza então bora lá de uma vez por todas começar com os requisitos para fazer esse curso aqui então o que que você precisa saber
para me acompanhar nesse curso aqui primeiro os fundamentos do Java script então condicionais Lopes de repetição S6 então era functions e Truck stream manipulação do Dom Pioneer então classes heranças tudo que eu ensino no meu curso gratuito de JavaScript que Taca no meu canal então se você ainda não tem conhecimento nesse tópicos aqui pause esse vídeo clica aqui no card que tá aparecendo assiste lá o curso e depois você volta aqui beleza outra coisa é nude JS também tem um curso aqui no meu canal Vou colocar aqui no card também caso você queira dar uma
olhada é um plus que você saiba vai ajudar muito você nessa aula aqui mas não é obrigatório então se você não sabe hoje e não quer ver o curso lá agora que tem aqui no meu canal Fica tranquilo que você consegue seguir comigo mesmo assim cara você precisa de vontade de aprender isso aqui cara é uma das coisas mais importantes se não a mais importante porque tá escrito pode ser um pouco dance pode ser um pouco complicado mas eu vou pegar na sua mão hoje Se você tiver essa dedicação para realmente ficar até o final
e aprender eu tenho certeza que você vai conseguir Então vamos lá pessoal antes da gente começar aprender script de fato eu preciso explicar um conceito extremamente importante para vocês que é o conceito de tipagem a gente tem dois tipos de tipagem dinâmica e a tipagem estática fica comigo que isso aqui é muito importante para você realmente entender o tape script tá em linguagens com uma tipagem dinâmica o tipo de uma variável é associado com o seu valor e não é explicitamente declarada a gente vai ver um exemplo disso aqui daqui a pouquinho e o tipo
de uma variável pode ser alterado livremente durante a execução do código exemplo de uma linguagem constipagem dinâmica que é o próprio JavaScript a gente tem esse exemplo aqui ó percebe que o tipo dessa variável age como Eu mencionei aqui ele foi associado com o seu valor ou seja com 21 e ele em nenhum momento foi explicitamente declarado então quando a gente declarou o Age aqui e assinalou o Wait a um Number no caso 21 o tipo desse age já foi implicitamente declarado pelo Type script pelo Java script perdão Então essa é uma característica de uma
linguagem de equipagem dinâmica a gente não declara o tipo de uma variável e esse tipo é atribuído automaticamente baseando-se no valor que a gente atribui para ela nesse exemplo aqui a gente atribuiu um Number então java script entende que o tipo dessa Edge é um Number e o outro ponto aqui que o tipo dessa variável pode ser alterado livremente durante a execução do código como a gente fez aqui também ó então percebe que a gente aqui em cima falou ó Java escrito que eu quero que essa aí seja 21 um Number Então já expliquei falou
Beleza então tipo vai ser Number mas depois eu falei cara eu quero que o tipo agora eu quero que o valor na verdade seja 21 string não número mais então já escrito que vai falar Beleza então agora o tipo dessa aí de é string Então você percebe como é uma tipagem dinâmica mesmo né E como a gente tem essas duas características bem presentes aqui no Java Script agora vamos para outra equipagem né para o tipo de equipagem estática que a gente tem então em linguagens constipagem estática o tipo de uma variável ele é explicitamente declarado
mais uma vez a gente vai ver exemplos daqui a pouquinho e o tipo dessa variável não pode ser alterado durante a execução do código e os valores assinalados a uma variável precisam respeitar o seu tipo previamente definido como assim Felipe vamos lá para um exemplo então peguei um exemplo de uma linguagem constipagem estática que é o próprio time script dá uma olhada como isso aqui já muda isso aqui é código Type script tá pessoal então aqui já vem uma característica muito muito forte do tap script que é quando a gente declara uma variável a gente
também declara o seu tipo Então esse primeiro ponto ó o tipo de uma variável é explicitamente declarado então ao invés de sei lá como java script que a gente só declarou Wade não falou o tipo dele aqui no Type a gente fala então a gente fala cara eu quero declarar essa Idi e o tipo dela vai ser Number então por exemplo se a gente tentar assinar lá 21 aqui para essa age ele vai deixar porque 21 é um Number concorda Então se a gente der um taipoff aqui na Age ela continua como Number Agora se
a gente tentar colocar uma string na saída assim como a gente fez no java script a gente vai ter um erro porque os valores assinalados a uma variável precisam respeitar o seu tipo previamente definido Então como esse 21 é uma string e a gente anteriormente eu quero que esse aí seja um Number ele vai ver que é uma stream vai falar cara isso aqui não é um número então eu vou dar um erro Então essa é a principal diferença de linguagens dinâmica pra linguagens constipagem estática a gente tem essa segurança né Pensa no Type script
como várias cercas ali em volta do Java script né ele adicionou um grau de segurança um nível de segurança muito grande e a gente vai ver mais na prática quando a gente for É de fato colocar a mão no código mas por enquanto eu quero que você tenha esses dois conceitos bem fixos aí bem Claros na sua cabeça e alguns exemplos aqui de linguagens constipagem estática Então a gente tem Java eu próprio tá escrito Então essas são algumas linguagens que possuem essa tipagem estática nessa tipagem mais rígida mais restrita e algumas linguagens constipagens dinâmicas a
gente tem um java script pythonrub e PHP daqui a pouquinho a gente vai ver as vantagens de cada tipo de linguagem beleza de cada tipo de tipagem agora vamos se aprofundar um pouquinho em linguagens estáticas Tá eu vou chamar a linguagens contentagem estática de linguagens estáticas daqui para frente porque a gente vai aprender tape script né Então vamos se aprofundar no tipo estático nessa aula aqui então eu quero explicar uma coisa para vocês galera que são compiladores Beleza então linguagem estáticas elas possuem compiladores que verificam as variáveis presentes no código seus tipos e seus valores
Então como a gente viu nesse slide aqui ó a gente teve esse erro aqui certo quando a gente tentou atribuir uma string All Number e quem vai verificar por erros dessa forma é justamente esse compilador Beleza então o compilador de cada linguagem ele aponta esses eventuais erros né Verifica o código e possui as suas próprias características e o táxi script utiliza o Type script com pallet que a gente vai ver também esse cara bastante hoje aqui então vamos para um exemplo aqui prático do compilador do teto script funcionando na prática beleza vamos lá a gente
tem um código que a gente já viu aqui como funciona né então a gente mais uma vez declarou a variável age a gente colocou o Number aqui e a gente posteriormente tentou assinalar uma string para esse age então o que que vai acontecer quando a gente falar assim compilador cara o meu código tá pronto roda esse código aí Verifica esse código aí então nosso código vai lá pro compilador que no caso do Type é o typecript compailer e esse cara ele vai olhar por eventuais erros no nosso código né E nesse caso ele vai achar
um então ele vai falar Opa tem algo errado aqui e aí ele vai apontar o erro pra gente então no caso vai ser o erro que aí de precisa ser do Type Number Então as linguagens estáticas elas possuem esse processo aqui de compilação que as linguagens de tipo dinâmica como o Java script não possuem agora que você entendeu o catpagem estática dinâmica entendeu que uma linguagem estática possui um compilador que verifica por eventuais erros na sua tibagem vamos agora entender de fato o que é o Type script então a gente já construiu a base necessária
para aprender de fato Então tá script é uma linguagem desenvolvida Com base no java script Então ela foi feita em cima do JavaScript que eu falei ela adicionou várias coisas em cima aí dessa linguagem ela adiciona novas funcionalidades aos jovens script e também a tipagem estática que a gente já viu bastante aqui e todo o código tá de script galera isso aqui é importante tá Anota isso em algum lugar isso aqui é extremamente importante todo o código tá script é convertido para o seu equivalente em JavaScript pelo Type script com Tyler portanto a gente pode
usar o Type script tanto no back end com o note JS quanto no frontchange com react por exemplo E por que que essa conversão acontece porque os navegadores não entendem tá de script os navegadores entendem JavaScript então o typecript compailer ele pega o nosso código tá script ele verifica lá se tá tudo certo se não tiver nenhum erro ele converte aquele código para o seu equivalente em JavaScript para esse código posteriormente ser executado em navegadores ou em servidores Beleza então a gente entendeu que o Type script é uma linguagem que foi desenvolvido em cima do
Java script que adiciona várias funcionalidades que a gente vai ver durante esse curso aqui e também tipo agem estática JavaScript que possui um compilador e esse compilador tá escrito compailer verifica erros no seu código e se seu código estiver ok ele converte o seu código para JavaScript a gente vai ver se funciona na prática Fica tranquilo mas agora Felipe porque eu devo usar o Type script bom como ele é uma linguagem de imagem estática ele previne algumas situações como essa aqui vamos supor que a gente está no java script então dinâmica a gente faz o
que quiser maior bagunça beleza vamos lá a gente está aqui no JavaScript e a gente tem essa função aqui soma e essa função ela recebe dois números né um e o dois e depois ela retorna a soma desses caras mas no java script a gente pode fazer isso aqui ó a gente pode em vez de números passar string e essa função vai retornar 23 que não tem nada a ver né nesse caso seria o ideal a gente garantir que essa função sempre vai receber número porque a gente quer somar números né a gente não quer
somar Strings como a gente fez aqui no typecript a gente pode mudar isso aqui galera a gente pode justamente definir que essa função e fica tranquilo que a gente vai aprender isso aqui daqui a pouco tá na prática a gente pode definir que essa função soma vai receber dois numbers tá vendo Então se a gente fazer dessa forma aqui no Type deixa falar cara essa samba vai receber o namon que vai ser Number e o nome 2 que vai ser Number também vai retornar a soma dos dois se a gente tentar chamar essa função e
passar duas Strings o tab script vai dar um erro para a gente comparar vai passar nesse código aqui e vai falar cara tá errado essa função receber Number e tá recebendo string tem alguma coisa errada aqui então essa é uma grande vantagem do Type que ele deixa a nossa aplicação muito mais segura pra esse tipo de situação aqui mas não é só isso não galera o tape script ele também como eu falei adiciona novas funcionalidades Ah o Java script então a gente pode utilizar funcionalidades extremamente modernas como importexport e o taekscript vai com Pilar essas
funcionalidades modernas para um código que funcione também em navegadores antigos então exemplo aqui prático vamos para que a gente tem esse código script a gente usa importe from aqui nessa sintaxe que é mais moderna foi introduzida no S6 e a gente usou também o maior function que também é uma sintaxe mais moderna a gente pode falar para o táxi que a gente compailer compilar todo esse código mais moderno para um código mais antigo né então que usa requaire e que usa uma funketion convencional aqui porque que a gente faz isso justamente para garantir compatibilidade com
o máximo de navegadores e Versões do node possíveis agora que a gente entendeu o conceito fundamental do tapscript vamos ver uma visão Geral das vantagens e desvantagens que ele tem vantagens a gente possui habilidade a gente consegue usar recursos mais avançados do JavaScript dentro dele a gente previne erros de equipagem como a gente viu aquele exemplo da função Summer a gente consegue criar aquele tipo de regra aquele tipo de segurança na nossa aplicação consequentemente Nossa aplicação fica mais fácil de identificar bugs e o nosso código fica mais legível E além disso ele é extremamente Popular
mas Nem tudo são flores né cara vamos para algumas desvantagens aí do Type script primeira a gente escreve mais códigos Isso é fato né a gente precisa definir os tipos das variáveis os tipos que os parâmetros das funções serão né então isso é querendo ou não mais escrita de código então a gente pode encaixar como mais vantagem há uma curva de aprendizado então se você já sabe já vai script mesmo assim você vai ter uma curvinha para aprender tá escrito aqui hoje e ele requer uma compilação Por javascriptil que torna ali um processo é um
processo a mais que a gente precisa saber precisa fazer perdão que querendo ou não adiciona ali um nível de complexidade também mas agora galera que a gente já aprendeu toda essa parte fundamental mais teórica vamos lá colocar a mão na massa de fato vamos começar a rodar no Type script Então vamos lá primeira coisa que você precisa ter na sua máquina cara para você seguir esse curso aqui o resto esse curso comigo é o note G tá para a gente usar o tá escrito que a gente precisa ter um node instalado na nossa máquina Então
cara baixa aqui instala é tranquilão para você instalar só da NET ali já era vou deixar o link aqui na descrição para você baixar e outra coisa é o vs code vs code é o editor de texto que eu vou utilizar aqui e eu recomendo muito que você utiliza ele também porque ele tem uma integração fenomenal com o Type que a gente vai ver aqui na prática Então vamos lá depois de instalar esses dois caras você já tá pronto para ir lá pro vs code comigo então criei aqui uma pasta no na minha área de
trabalho abrir ela aqui converse code e a primeira coisa galera que a gente precisa fazer depois de enfim instalar o note instalar o vs code para começar a usar o script é instalar a dependência do Type script e eu gosto de falar ela como uma dependência Global dele desenvolvimento ou seja uma dependência que a gente consiga usar em qualquer projeto e vou instalar aqui o typecript vamos esperar ele instalar beleza galera ele instalou aqui vou dar um Clear no meu terminal vou apertar Ctrl J para fechar ele e um curso aqui cara a gente tá
desculpa que eu vou te ensinar dominar escolha e vou te ensinar muita coisa legal muitos atalhos que você pode utilizar aí no seu dia a dia então vamos lá vamos criar então o nosso primeiro arquivo Type script Então vou aqui New file e eu vou colocar em decks.ts os arquivos tapscript possuem essa extensão ponto TS e agora galera vamos escrever o nosso primeiro código tá script vou escrever algo aqui sem muita novidade eu basicamente vou colocar um net age igual a 5 então isso aqui não tem nada ainda do Type de Fato né é o
Java script é basicamente java script Isso aqui vai dar mais uns aqui e aqui cara eu vou dar por exemplo um console.log no Eid Ok beleza agora galera como que a gente faz para passar por aquele processo de compilação como que a gente faz para usar o typerware para compilar esse cara aqui para JavaScript muito simples vou abrir o terminal a gente vai usar um cara chamado tsc de tapescript companhia e aqui como eu tô na minha pasta importante tá eu tô nessa pasta aqui mesmo aqui está esse aqui ponto index eu consigo dar um
index.ts e vamos dar um enter e ele compilou para JavaScript Olha esse aqui que legal galera olha aqui sensacional então ele compilou isso aqui para o seu equivalente em Type script em Java Script perdão e olha uma característica aqui por padrão Ou Type script ele compila todo o código time script para o seu código equivalente em JavaScript na versão S5 então por isso que a gente usa vara aqui porque na versão S5 a gente ainda não tinha ledcost e a gente vai aprender a mudar esse target né Essa essa configuração de por exemplo Ah eu
quero compilar para o S6 a gente vai aprender a fazer isso daqui daqui a pouquinho tá agora vamos voltar para o nosso arquivo tá script e vamos vamos ter algumas coisinhas aqui vou apagar esse cara e eu vou colocar aquele exemplo que a gente viu nos slides eu vou criar uma variável age aqui e eu já vou começar a usar recursos do tap cript eu vou falar que essa aí vai ser um Number Como que eu faço isso eu declaro ela com dois pontos e coloco Number e aqui eu posso colocar um cinco por exemplo
se eu colocar uma string ele vai dar erro então uma coisa que você precisa aprender inscritos que você vai pegando com o tempo também é sempre passar o mouse em cima aqui dos erros ó porque os erros são bem descritivos então basicamente ele tá falando que o Type string não é assinalável ao Type Number Ou seja você não pode assinar um timer string no caso esse a para um Type Number que é essa age Então vou colocar cinco aqui e agora Se eu tentar colocar essa Edge uma string sei lá cinco como string e tentar
alugar ela aqui embaixo a gente tem um erro aqui certo então o mesmo erro lá a Live Strings na hora saiba outro Type Number mas agora se a gente rodar o compailer então eu vou mais uma vez teste sem dex.s ele vai apontar o erro para gente ó tá vendo mesmo assim ele vai compilar para JavaScript esse tipo de coisa a gente também pode mudar então a gente pode falar cara eu só quero que você compli o código para chavescript se não tiver nenhum erro aqui a gente vai aprender a fazer isso também E vocês
percebem galera que quando ele compila para java script ele tira tudo que é editar script dele então ele tira por exemplo esse Number aqui né porque afinal ele Precisa converter para Java skate para navegadores e servidores entenderem esse código aqui então a gente viu o compailer funcionando na prática agora eu quero ensinar para vocês como a gente pode configurar esse cara eu quero mostrar para vocês o arquivo de configuração do script então vou deixar dessa forma aqui só para parar de dar erro beleza OK agora para inicializar um arquivo de configuração do Type script pessoal
a gente vai digitar tsc dois traços e nit esse cara vai criar um TS config Jason para gente e eu vou explicar para vocês esse arquivo Então vamos abrir ele calma não se assusta vou tirar um pouco do zoom aqui ficar mais fácil para a gente ver e aqui galera a gente tem várias opções que a gente pode alterar que são relacionadas ao nosso tape script compailer tá você não precisa saber tudo isso aqui cara fica tranquilo você não precisa saber de verdade tudo isso aqui ainda mais agora que você tá começando tá Fica tranquilo
eu vou passar para você as principais aqui a primeira é essa target essa target como o nome dela já disse ela basicamente define a versão do JavaScript na qual o nosso código tá escrito que vai ser compilado então neste caso aqui no index a gente tá compilando para S5 né então a gente tá usando vale e tudo mais se a gente mudar esse target aqui para S 2016 que é o S6 basicamente e a gente agora rodar um tsc porque para levar em consideração esse arquivo galera a gente tem que dar um tsc direto ele
vai pegar tudo que tá aqui no nosso diretório e vai compilar para JavaScript incluindo aqui o nosso index Então vou dar um tsc apenas E agora se a gente vier aqui no index.s a gente vê que agora ele tá usando o LED então a gente basicamente falou para o script cara eu quero que você converta tudo isso aqui para o JavaScript na versão S6 então na versão que já tem LED que já tem que inclusive é outra tag aqui que a gente tem então fechar o terminal aqui ó a gente tem essa Street Aqui certo
na verdade essa Strike é outra coisa pessoal por padrão o tático que ele usa o Strike aqui outra propriedade bem importante aqui é essa mod galera que define basicamente o tipo de importe que a gente vai usar né se é o combo GS que no caso é o recuar ou se é por exemplo ou s next que seria o importe e o EcoSport né então a gente consegue definir isso também vou deixar comece aqui só pra gente ver um exemplo daqui a pouquinho e outras duas propriedades pessoal muito importantes são Alt Gear que tá Onde
está o tequila que é muita propriedade Cara essa Auto giro aqui que é basicamente galera a pasta em que os arquivos compilados clipes serão jogados né porque num projeto real a gente não vai querer que os nossos arquivos e javas fiquem no mesmo diretório normalmente que a gente vai ter a gente vai ter uma pasta src nessa pasta vai ficar tudo no nosso código de desenvolvimento então por exemplo em 10.ts ficaria aqui dentro e a gente teria uma parte uma pasta disto por exemplo que ficaria o nosso código já script normalmente Esse é o fluxo
tá galera Então essa disto aqui seria a pasta que subiria para um kit uppage por exemplo para um Nete ele vai pra gente fazer o depo-de falar da nossa aplicação Então essa Alt Gear define justamente isso né a pasta em que os arquivos serão compilados então por exemplo se a gente comentar isso aqui com control barra e aqui colocar ponto barradiste a gente vai ter esse comportamento aqui ó então quando a gente compilar os arquivos esse arquivos compilados em JavaScript irão para essa pasta deste e ligando com essa propriedade aqui a gente tem outra que
trabalha em conjunto com ela que é justamente a ruteger que é a localização dos nossos arquivos então neste caso aqui seria a pasta src Então tá escrito que ele vai olhar apenas para essa pasta CRC na hora que fazer a compilação no caso a gente colocar essa SS aqui na Richard que é justamente que a gente vai fazer agora então vou apertar contra o barra praticamente e aqui eu vou colocar ponto barra src OK agora vamos fazer o tsc de novo vamos ver o que que vai acontecer eu vou apagar esse início daqui e vamos
lá um tsc e olha o que aconteceu galera ele pegou esse nexts e jogou aqui dentro do nosso distin e converteu ele para JavaScript na versão que a gente especificou aqui no target Então essas são as propriedades mais importantes que você precisa aprender agora tá no começo as outras você vai aprendendo Conforme você for usando o tablet tem várias aqui cara você pode dar uma olhada na própria documentação a gente tem por exemplo essa aqui ó que remove os comentários Então se a gente colocar algum comentário aqui na hora da gente fazer a compilação se
essa opção estiver true o compare vai tirar esse comentário aqui então esse comentário não vai para o nosso arquivo script tem várias outras também que como eu falei você não precisa saber agora tem uma que legal também que é a Lounge S que enfim ela permite que a gente tenha arquivos JavaScript no nosso projeto também na nossa src por exemplo E que esses arquivos sejam jogados aqui para nossa Alt de um caseadist a gente tem essa check GS que verifica os erros também nos arquivos JavaScript enfim são várias opções que mais uma vez você não
precisa aprender tudo agora Então agora que a gente aprendeu sobre o compailer a gente viu ele funciona em Ação a gente aprendeu Como configurar ele vamos começar de fato a trabalhar com o Type script então a gente viu que a gente consegue definir tipos para as variáveis dessa forma e a gente viu que a gente tem esse tipo Number claro que a gente tem outros tipos então por exemplo a gente tem tipo string que pode ser tipo Felipe eu vou criar um comentário aqui em cima com controlar vou apertar vou digitar tipos básicos Então a
gente tem o nome a gente tem também uma bulham que é basicamente true falso né então true falso aqui se a gente tentar colocar o número que ele vai dar erro para gente justamente porque é uma bolha aquele tá dando erro porque essa variável não pode ser declarada como name né Isso aqui é algo da versão mais recente do JavaScript na verdade que a gente não pode declarar uma variável com esse nome eu vou colocar tipo first Name aqui beleza e a gente também tem um tipo especial aqui do Type script galera chamado n Que
cara é basicamente um tipo que pode ser qualquer coisa tipo vou colocar sei lá I don't know vou colocar aquele n aí cara esse I don't know seria uma variável java script tipo 100 tipagem estática então a gente pode colocar uns 5 aqui e se a gente assinar lá ele para string ou sei lá é que aqui tá concha né gente precisa colocar LED a gente pode assinar ele para string posteriormente a gente pode assinar também para bolha Então esse n aqui é cara tipo que você mais quer evitar porque ele meio que tira a
mágica do Type script né porque quando você usa ele você não tem mais aquela segurança que você tem como swing ou com uma bolha por exemplo mas enfim aqui para vocês saberem que é um recurso que a gente tem no Type script a gente também pode galera usar esses tipos aqui em listas Então vamos supor que a gente tem uma lista de sei lá aí diz e a gente quer que essa lista seja uma lista que contém números então tipo 1 2 3 4 5 para definir que essa lista vai ser um Number uma lista
de Number A gente coloca number que no caso vai ser o valor que essa lista vai conter E aí a gente coloca dois colchetes assim então isso aqui fala pro tá escrito que isso aqui vai ser uma lista de numbers Ok então se a gente tentar colocar uma string aqui ele vai dar erro para gente e o Tap crip galera tem uma coisa que ele infere o tipo da variável automaticamente se a gente não definir dessa forma então por exemplo se a gente tirar esse Number dessa Edge e a gente passar o mouse em cima
dela o Type dele vai ser Number por quê Porque a gente declarou ela como Number mas a gente ainda vai ter aquela segurança então por exemplo se eu tentar colocar aí digo string ele também não vai deixar então se a gente não definir explicitamente o tipo da variável o Type vai definir ele para a gente baseando-se no valor que a gente atribui para ela ok então isso também é uma coisa bem importante do tape script vou voltar aqui Como estava a gente pode criar galera lista de qualquer tipo então por exemplo Ah bullianz pode ser
uma lista de bolha E aí eu posso ter tipo true falls e true falso tá a gente também pode criar uma lista de string então tipo names pode ser uma lista de string e eu posso colocar tipo Felipe Jane sei lá beleza e o meu código Pessoal lembrando ele tá sendo formatado automaticamente quando eu salvo porque eu tô usando o Peter tá então se você quiser você pode instalar aí e usar o freezer assim como eu tô utilizando também ok então a gente aprendeu os tipos básicos a gente viu que dá para usar eles para
listas também agora eu quero passar para vocês um tipo chamado topo que é uma dupla que é um tipo de variável que a gente usa quando a gente quer uma variável que tenha um determinado tipo de valor em uma determinada ordem Como assim Felipe vou mostrar para você Ele parece uma lista não é uma lista exatamente mas eu quero passar para vocês de qualquer forma tá vou criar uma variável aqui tipo que vai ser uma dupla tá então vou colocar os dois pontos aqui para definir o tipo dela e uma dupla é basicamente um colchetes
e aqui dentro desse colchetes a gente passa a ordem exata de valores que a gente quer dentro dessa tupa por exemplo eu vou colocar Number string aqui agora quando a gente for declarar esse cara a gente tem que declarar ele como uma lista tá é com os colchetes na verdade isso aqui não é uma lista como eu falei para vocês é uma dupla parece uma lista mas não é mas a gente tem que declarar assim parecido com uma lista né com os colchetes e aqui como primeiro elemento a gente precisa colocar um Number e como
segunda a gente precisa colocar uma string se a gente inverter Essa ordem tipo colocar Number primeiro e string perdão colocar string primeiro string primeiro e Number depois ele vai dar um erro então basicamente uma dupla você usa quando você quer garantir essa ordem aqui de valores Eu particularmente não utilizo muito mas eu quero passar para vocês para ficar de referência tá então vou colocar aqui tipo para mudar eu vou colocar tipo um e Jane aqui e a gente também pode ter uma lista de duplas então a gente pode ter por exemplo persons na verdade é
peopleção a gente pode copiar Essa dupla aqui então Number e string E adivinha como que a gente faz para tornar esse tipo na verdade é dois pontos aqui né como que a gente faz para tornar esse tipo uma lista baseando-se no que você veio aqui em cima a gente vai colocar outros colchetes aqui agora esse cara vai ser uma lista dessas duplas aqui então a gente vai criar uma lista e cada elemento vai ser uma dupla então Jane vírgula e aqui a gente pode colocar Tipo dois dois e lembrando se a gente colocar a ordem
errada aqui tipo Loren E3 ele vai dar erro porque é uma dupla precisa ter exatamente a ordem que a gente definiu aqui ok Beleza então a gente viu duplas a gente viu lista de duplas agora outra coisa que eu quero passar para vocês que são intersections então intersections são basicamente é basicamente a situação em que a gente quer que uma variável possua um tipo ou outro como assim Felipe vamos lá vamos supor que a gente tem uma variável aqui chamada produtchaide e a gente quer que ela seja ou Number é possível fazer isso Felipe é
possível sim justamente com intersec você vai ver que é bem simples cara é só a gente definir o tipo então com os dois pontos né que a gente já tá acostumado aqui e a gente coloca string or né o War mesmo do Java script Então essa barra or Number e agora a gente consegue assinalar ou uma um número pra esse cara ou uma string tá então a gente consegue ter essa dualidade aqui de de tipos usando a internet a gente pode colocar outro também tipo aqui tá Isso aqui pode ser infinito e a gente se
quiser pode colocar falso aqui então a gente consegue ter esse tipo de situação onde o tipo de uma variável é mais dinâmico usando intersections Eu particularmente não gosto muito disso aqui porque enfim né a gente não vai saber se esse número string porque ele pode ser os três né no caso mas tá aqui para vocês usarem de referência outra coisa muito legal é o menu e lembrando pessoal isso aqui é num intersection duplas é tudo exclusivo do TF script isso aqui você não tem como o Java script padrão Ok mas voltando aqui o Enem é
outro recurso muito legal cara como que ele funciona ele é bom cara em situações que a gente tem por exemplo Ah um valor que sempre vai ser atribuído a outro valor Como assim Felipe vamos lá vou explicar para vocês que fica mais difícil aqui é meio difícil explicar vou explicar na prática que é melhor eu vou criar um e-1 chamado sei lá Direction tá E assim que a gente cria um e não e vamos supor que a Direction Up seja um tá e a Direction dá um por exemplo seja dois a gente pode assinalar por
exemplo Esse é num dessa forma da reaction.up e esse da reaction ele vai valer esse um então quando que isso é bom quando por exemplo a gente tem no nosso banco de dados um valor que tem que ser um ou dois mas ser um ou dois não é muito didático né então a gente pode tornar esse processo mais didático por meio de enoon então a gente sabe que um significa um up mesmo então se a gente colocar direction.up esse cara vai ser um que é justamente o valor que a gente colocou aqui eu vou dar
um log nesse age aqui galera nesse Direction perdão e eu vou dar um tsc para ele compilar e olha o código Olha o arquivo como tá ficando né então a gente tem aqui esse console ponto vlog agora como tá escrito compailer só com pila ele não loga nada eu vou ter que ir lá na Disk para rodar o meu arquivo eu vou dar o download x.js e a gente vê que o console.log do Direction foi um Então é assim que não funcionam tá pessoal a gente basicamente consegue atribuir um valor a valor e a gente
usa ele justamente para aumentar a legibilidade do nosso código né tudo fica bem mais didático a gente pode expandir isso aqui também a gente pode tipo colocar quantas a gente quiser a gente pode colocar que é igual o string também então tipo colocar igual a direita esquerda perdão tipo left vai ser esquerda e aqui sei lá a gente consegue colocar tipo direction.left E aí o valor dela vai ser esquerda né então cara isso aqui é muito legal muito poderoso Adiciona uma didática muito grande aí no nosso código agora pessoal outra coisa que eu quero mostrar
para vocês é uma coisa chamada Type a sessions que que é isso é basicamente quando a gente quer mudar o tipo de uma variável que que é isso é basicamente quando a gente quer tratar uma variável que é de um tipo como um tipo diferente como assim Felipe vamos lá vamos supor que a gente tem uma variável chamada sei lá é product que ela é do tipo N por algum motivo era do tipo N E ela é sei lá boné e a gente quer atribuir esse a outra variável sei lá chamada eu vou criar uma
variável aqui chamada tipo ok Então essa prova aqui é um string Eu acho que eu já queria aqui em cima né então vou criar tipo item agir que é uma string Ok e a gente pode perfeitamente declarar variável só com o tipo dela depois assinalar tá galera tranquilamente e aqui eu quero que esse item agir seja igual ao produto aqui em cima ele fica me string certo mas se eu tirar esse string daqui galera ele vai ficar também como n a gente pode falar que esse name nesta nessa nessa atribuição aqui variável vai ser uma
string então se eu colocar n ainda porque porque a gente a gente definiu ele aqui sem definir um tipo então ele já vai atribuir o Enem automaticamente Então se a gente fizer assim dele tá aqui agora assim se a gente passar o mouse aqui em cima ele é do tipo string Beleza então isso aqui que é um Type acerto a gente basicamente tem um tipo N por exemplo e a gente consegue meio que mudar esse tempo Quando a gente tiver atribuindo ele a uma variável também tem outra forma de fazer que é mais chique vamos
dizer assim que é dessa forma a gente coloca um item aqui vou comentar esse cara aqui com controlar e a gente coloca entre Chaves aqui o tipo que a gente quer que essa farear você então string nesse caso e do lado a gente coloca o pro doc name E aí se a gente passar o mouse em cima a gente tem exatamente o mesmo resultado beleza galera então isso aqui é outro recurso bem legal aqui do Type script agora galera vamos começar a aprender umas coisas mais complexas tá vou criar um arquivinho aqui chamado functions.ts porque
a gente vai começar a ver funções aqui no Type script como que a gente usa funções dentro do Type script como a gente viu lá nos slides a gente consegue definir uma função por exemplo de São tá E essa função ela vai receber parâmetro certo então vai receber x e y e a gente consegue definir o tipo desses parâmetros então eu consigo falar para o script que esse cara vai ser o Number E que esse cara também vai ser o Number e agora eu vou basicamente tornar o x + y e se a gente tentar
Chamar esse samba com string a gente vai ter um erro certo isso aqui não é novidade né porque a gente já viu lá nos slides mas basicamente a gente vai ter o erro que esse argumento do tipo string não pode ser assinalado para esse argumento do tipo Number mas tem mais coisa aqui galera se a gente passar o mouse em cima da ação a gente vê que Opa tá difícil aqui a gente vê que a gente tem aqui os argumentos com os tipos mas a gente tem essa flechinha com um tipo Number que que é
isso aqui isso aqui é basicamente O Retorno dessa função tá então se a gente colocar algo certo aqui tipo 2 e 3 e assinalar uma variável sei lá como se velho ao som e passar o mouse em cima desse velho esse cara vai ser Number porque porque o retorno dessa função é um Number E por que que o retorno dessa função Number porque o táxi Creep galera ele é inteligente que que ele pensou ele pensou cara esse X é um Number certo como a gente definiu e esse Y também então a soma desses dois vai
ser outro Number por isso que ele atribuiu automaticamente o retorno dessa função a um Number e a gente pode explicitamente declarar aqui que o retorno vai ser Number sem problemas tá mas se a gente colocar string obviamente que vai dar erro Olha como tá escrito que é inteligente cara olha como isso é sensacional velho ele viu que isso aqui é Number que isso aqui também e ele viu que o retorno tem que ser string Então cara como a gente está retornando a soma de dois números Ele pensou olha cara não é string velho tu tá
tentando somar dois números tu quer tornar uma skin como então eu vou mostrar um erro aqui para você se a gente retornar Sei lá isso aqui vou colocar entre parênteses string Agora sim ele vai deixar porque isso aqui vai ser um string e agora Tenta adivinhar o tipo desse velho vai ser string então a gente consegue manipular tanto os tipos de dos parâmetros de uma função quanto o tipo de retorno dessa função isso aqui traz uma segurança muito muito grande pra gente e a gente também pode usar intersections aqui no retorno da função ou seja
a gente pode falar que essa função vai retornar ou string ou um Number certo e aí esse velho agora ele vai ser ou uma string ou um Number A gente também consegue fazer esse tipo de coisa aqui nas funções como eu já mencionei antes não gosto muito de usar isso aqui Mas enfim vou deixar aqui para vocês como referência ok nós também temos outro tipo de retorno que é bem característico do Type script que é o void Então vou criar uma função para explicar isso para vocês eu vou criar uma função tipo log aqui que
basicamente vai receber uma mensagem que vai ser um string tá e ela vai dar um log aqui nessa mensagem e essa função pessoal se a gente passar o mouse em cima dela a gente vai ver que o retorno dela é um void e que que é uma função void é uma função que não retorna nada então se a gente colocar um void aqui e tentar retornar aqui um dois ele vai dar erro porque porque Type numbers porque quando a gente fala que uma função é void a gente está falando para o tablet Cara essa função
não vai ter nenhum return e Nesse caso tem Então esse é o void na prática tá basicamente uma função que não vai retornar nada e lembrando galera aqui a gente pode retornar qualquer tipo tá tanto aqui quanto aqui quanto em qualquer função a gente pode retornar por exemplo uma lista de string a gente pode retornar uma lista de Number enfim todos os tipos básicos que a gente viu até agora a gente pode retornar aqui nas funções ok então o tático ele expande muitas funções né como a gente viu agora a gente pode tanto tipar os
parâmetros quanto o tipo de retorno isso aqui torna a nossa aplicação muito mais previsível né porque a gente sabe que a variável que vai ser o retorno dessa ação vai ser on string ou Number então a gente consegue ter um controle maior sobre que que a gente pode usar nela quais métodos a gente pode usar nela né e assim por diante mas agora que a gente viu funções vamos expandir um pouco mais vai ficar mais legal agora cara tu vai ver vamos ver objetos Então vou criar aqui objetos que acontece Ok e aqui galera a
gente vai aprender dois conceitos muito legais O primeiro é o Type que que é um Type Olha como esse aqui vai ficar absurdo e legal cara um Type galera é basicamente um objeto e a gente pode definir quais propriedades esse objeto vai ter e quais são os tipos dessas respectivas propriedades então eu posso criar um Type por exemplo de user e que que um usuário tem Vamos pensar um usuário tem o first Name certo primeiro nome que é do tipo string e aqui a gente tem que colocar um igual tá beleza então a gente definiu
que a propriedade first Name do usuário vai ser do tipo string e aqui lembrando a gente pode usar todo aqueles tipos que a gente vai aprender pode usar tipo lista de string pode usar Number pode usar lista de Number pode usar tudo aqui menos void tá porque void é para a função Então vou colocar string aqui pode usar intersection também né que a gente aprendeu pode usar tudo mas vou colocar string vou colocar também uma age como Number vou colocar um e-mail como string e vou colocar um password como string e aqui não precisa ter
vírgula tá pessoal pode escrever dessa forma mesmo agora vamos supor que a gente quer criar um objeto desse usuário como que a gente faz isso eu vou criar uma concha user e eu vou chupar esse cara como que a gente faz para te passe já tá craque nesse aqui a gente coloca dois pontos e user certo que é o Type que a gente criou aqui em cima vou colocar igual e vai ser um objeto e olha isso aqui tá preparado para mágica cara aperta contra o espaço aí no seu teclado para você ver que vai
acontecer ele vai completar para a gente com as propriedades que a gente definiu aqui no nosso Type isso aqui não tem java script Cara isso aqui é sensacional tá é uma qualidade de vida absurda Mas beleza vamos lá contra o espaço vou colocar Fast name e aqui precisa ser uma string então se eu colocar um dois ele vai dar um erro Olha o tá escrito aqui já ajudando a gente mais uma vez Então o Type Number isso na hora sai no botão string aqui portanto eu vou colocar Jane aqui age eu vou colocar 20 tá
e percebe galera que ele tá dando um erro aqui porque porque ele tá falando que a gente colocou o fortnite mas a gente precisa ainda colocar o restante que é e-mail e peço hoje e como que a gente pode deixar propriedades opcionais né porque tudo isso aqui tá obrigatório tanto que tá dando erro aqui como eu mostrei para vocês por exemplo se eu colocar e-mail aqui tipo ele ainda vai dar o erro do e-mail então o password perdão ele vai falar aqui o password está faltando né que a gente ainda não colocou persure Mas se
a gente colocar um ponto de interrogação a gente fala para o script cara esse cara é opcional então ele não vai dar mais erro aqui então a gente pode ou colocar o password ou não colocar isso aqui Fica como opção nossa ok então é assim que a gente consegue definir objetos pessoal e a gente também pode definir Strings aqui dentro então tipo colocar sei lá é orders que vai ser uma lista de string tá aqui a gente pode definir ordens também né então o horder vai ser uma lista de string ó a gente consegue usar
tudo que a gente já aprendeu sobre o type aqui e outra coisa galera a gente pode criar objetos que serão listas desse user Como assim Felipe vamos lá vamos criar aqui em cima um Type Order beleza e Essa ordem vai ter basicamente um production que vai ser string e um Price que vai ser Number A gente pode fazer com que essa ordem seja uma lista de ordem cara ou seja esse cara aqui vai ser uma lista e cada elemento vai ser um objeto Order Beleza então tá seguindo aqui né a gente tem isso aqui que
é um objeto e a gente está definindo que essa ordem aqui vai ser uma lista com esse objeto então Justamente que a gente tá fazendo aqui né uma lista com objeto Order Então se nesse objeto a gente apertar contra o espaço cara ele vai completar pra gente com as propriedades do Order Olha que coisa maravilhosa velho então a gente pode colocar o produto aqui respeitando esse tipo string né se a gente colocar um ele vai dar erro então vou colocar um e o price eu vou colocar tipo 200 então a gente pode meio que nestar
né usar types em conjunto assim como a gente tá fazendo aqui muito muito legal cara esse aqui é muito muito bom principalmente esse autocomplete que o tático agora galera uma observação quando que a gente usa uma propriedade opcional se a gente tentar acessar esse password por exemplo eu vou colocar user ponto isso aqui galera pode ser nulo Ok então ó tá vendo que se eu passar o mouse em cima ele recebe string ou underfinid que que sua interfere aqui vamos supor que a gente tem uma função tá rapidinho só para mostrar isso para vocês que
é importante vamos supor que a gente tem uma função chamada log mais uma vez tá que vai receber Sei lá uma mecha que vai ser string e ela não vai fazer nada não vai fazer nada tá se a gente tentar passar essa user password para log tá dando erro aqui porque eu já declarei no outro arquivo né é fazer aquilo vou declarar tipo print aqui print aqui ok ele vai dar erro aqui galera mesmo essa user ponto password sendo uma string ele vai dar erro porque porque no caso é print já existe né filho vou
colocar print logo ok se eu passar o mouse ele vai dar erro galera porque porque o argumento de string and não é assinalável que que acontece aqui pessoal vamos lá vamos vamos pensar essa printlog ela recebe uma mensagem que é uma string correto entretanto esse pé surge ele pode ser uma string ou underfire ou seja tipo não é compatível se a gente colocar aqui essa Messenger é opcional então a gente também consegue definir que parâmetros de função serão opcionais se a gente colocar um ponto de interrogação aí vai passar porque agora esse messenger ou é
uma string ou é um definete então quando a gente tem propriedades opcionais elas são diferentes do que propriedades de string por exemplo né nesse caso password é um string mas como ela é opcional Ela não é uma string de fato ela é string ou on Theft Então a gente tem que tomar cuidado quando a gente tiver passando elas para funções como essa printlog que exige uma message uma string né no caso uma string que esteja definida Mas a gente pode meio que dá um bypass nisso tá galera como que a gente faz isso se a
gente colocar um ponto de exclamação aqui a gente tira esse underfire então a gente fala assim pro Type Cara essa peça existe porque esse erro aqui é basicamente que cara essa peça hoje pode ser uma swingfire ou seja ela pode existir Você ainda me stream ou não ela pode ser um definete então com esse ponto de exclamação a gente fala pro telescript ó cara Tira um define disso aqui que eu tenho certeza que essa peça já existe então isso é algo que a gente pode fazer também ok então a gente viu que a gente pode
criar propriedades opcionais em objetos a gente também pode colocar parâmetros opcionais em funções e a gente pode ignorar né Essa essa opcionalidade no caso essa usando o ponto de exclamação fechou então agora vou ensinar outra coisa para vocês ainda com type está que é uma coisa chamada unions beleza que basicamente galera é o seguinte vamos supor que a gente tenha um Alfre beleza e um Alfre ele vai ter basicamente uma lista de livros que vai ser uma lista de string agora vamos assinar ele aqui para Alfa Mas vamos supor que um alto né um autor
ele é também um usuário né a gente quer que o autor tenha a lista de livros mas a gente quer que eles sejam usuário também ou seja que ele tenha tudo isso aqui como que a gente faz isso a gente coloca os dois pontos Maroto aqui e a gente coloca alford and user agora esse alfa ele tem todas as propriedades do alforro aqui do autor e também do usuário Então se a gente apertar Ctrl espaço a gente tem todas as propriedades aqui do usuário e do autor Então é assim que a gente consegue usar também
a unions a gente consegue basicamente unir dois Tapes O que é muito muito bom então vou colocar tipo age 4 Sei lá uma lista qualquer aqui vou colocar e-mail All for@gmail.com esse aqui vai ficar referência para vocês tá pessoal para vocês verem esse arquivos ordens vou colocar a prova e outro detalhe galera quando tipo é string pode ser uma string vazia também tá embora seja um string de Order pode ser um string vazia não precisa ter ordem aqui dentro necessariamente Ok a empresa ser uma string e é isso Beleza claro que se eu botar uma
string de número aqui ele vai dar erro porque precisa ser uma ordem né precisa ser um objeto de ordem mas pode ser uma string vazia Ok então vou deixar vazio mesmo e é isso fechou galera agora tem outra coisa que é bem parecida com pipes que são interfaces interface galera são muito parecidas mas tem algumas diferenças que eu vou mostrar para vocês Então como que a gente faz para criar uma interface bom a gente coloca interface o nome dela vou colocar user interface Porque a gente já tem user aqui vai dar erro e a gente
não precisa colocar igual tá Não precisa colocar assim a gente só coloca a chave direto e aqui assim como tá aí para a gente pode definir as propriedades normalmente Então vou colocar first Name só e e-mail para não ficar muito a propriedade agora galera a gente pode criar por exemplo um user sei lá vou colocar e-mails aqui só para não conflitar com a variável que a gente criou aqui em cima e a gente pode colocar que ele vai ser do tipo e user interface assim como a gente faz com táxi cara nada de diferente aqui
ó então meio sei lá Felipe @gmail.com mesma coisa né até agora não mudou nada mas galera tem algumas coisinhas que a gente pode fazer com interfaces por exemplo a gente pode definir que esse name vai ser read only que que é isso ele pelo amor de Deus se a gente tentar colocar em meio ponto e-mail igual a dois ele não vai deixar porque é um né Isso aqui é apenas leitura a gente não pode alterar isso aqui depois de criar objeto Então esse é uma coisa que a gente não consegue usar com types a gente
também consegue usar unions com types com interfaces perdão então a gente também consegue criar sei lá alforinterface usar aqui declarar um books e a gente consegue sei lá New alfaro aqui a gente consegue falar que ele vai ser tanto um user quanto um Alfre assim como a gente faz também com os types Ok nada de diferente até agora tá então alho arroba gmail.com Beleza então galera interfaces são muito parecidas com types fica mais uma questão de gosto mesmo eu costumo utilizar mais interfaces interface interface tanto faz como você quer chamar mas são bem parecidas então
fica mais agosto mesmo mas tem uma coisa que o Type consegue fazer que a interface não consegue que é o seguinte a gente consegue galera criar uma a gente consegue assinar um enter section a um Type Como assim vamos supor que a gente tem um tipo chamado grade não vou criar uma variável chamado grade que é uma nota tá tipo uma nota escolar que pode ser ou Number ou string Tá eu vou colocar tipo um aqui a gente consegue jogar isso aqui para um Type então eu posso colocar por exemplo Type grade que é igual
a Number ou string dessa forma e aí o grade pode ser do Type grade entendeu isso aqui a gente não consegue fazer com Interface então se eu mudar esse aqui para interface ele dá erro tá então cara se você quiser usar isso aqui você usa Type se não você pode usar a interface mesmo pelo menos é o que eu faço eu uso muito mais interface do que Type mais uma questão pessoal mesmo mas enfim são basicamente a mesma coisa com algumas alguns detalhes que a gente acabou de ver aqui agora pessoal vamos voltar um pouquinho
para funções a gente ainda vai falar de interfaces ok Porque eu quero mostrar como que como que a gente pode usar interface junto com funções Então vamos lá com interfaces pessoal a gente pode definir quais parâmetros uma família de funções vamos chamar de família você já vai entender quais parâmetros essas essa família pode receber e quais valores ela pode retornar Como assim Felipe eu não entendi nada Calma Vamos lá vamos criar uma interface chamada Messi funk essa interface ela vai basicamente ser uma função a gente pode fazer isso aqui tá que vai tornar o Number
ok e na verdade pessoal a gente define assim OK então já vou explicar e aqui a gente coloca os parâmetros então tipo vou colocar x number que que a gente está definindo aqui que toda função que implementar essa interface precisa receber o x que é um Number e o y que é o número também e precisa retornar um Number então aqui galera a gente usa essa sintaxe aqui para definir o que que essa função vai retornar assim como a gente faz aqui também Beleza então se a gente jogar esse interface aqui para cima e colocar
essa mefe funk aqui na ação e como que a gente implementa essa interface aqui na ação né em uma função depois o nome dela a gente coloca dois pontos e a interface ela vai dar erro aqui porque porque essas são retorna no string ou Number A gente passar Mouse porque ela precisa retornar um Number e não me string ou Number né então aqui eu vou colocar apenas Number e aqui a gente vai ter que arrumar então vamos colocar o return x + y e agora sim então agora ela tá de acordo com a nossa interface
se a gente mudar aqui para string ela vai dar um erro aqui né porque agora ela precisa retornar uma string a gente pode implementar essa interface em outras funções também então vou criar uma função tipo Subway aqui para subtrair que vai implementar uma funk Ok vai receber dois parâmetros x Number assim como a gente definiu aqui certo e a gente vai retornar basicamente o x menos y e aí ela vai parar de dar erro vou jogar aqui para cima porque ela vai ficar de acordo com a nossa interface Então é assim que a gente pode
usar interfaces com funções a gente também pessoal pode definir aqui nos objetos vou voltar aqui nos objetos a gente pode definir que por exemplo uma propriedade aqui do usuário vai ser uma função exemplo vou colocar uma propriedade chamada redster e para a gente falar que essa propriedade vai ser uma função a gente faz isso e coloca o que que essa função vai retornar tipo string beleza e na verdade eu fiz isso aqui na variável né tem que fazer aqui no Type do user Então vou colocar aqui agora se a gente criar uma função olha vai
dar o erro inclusive tá porque o headster ele não tá declarado e a gente pode deixar com opcional também se a gente colocar o ponto de interrogação aqui no nome antes do parênteses Ok mas vou deixar obrigatório e aqui a gente vai colocar o restore que vai ser um método e esse método se ele retornar dois por exemplo ele vai dar um erro tá pessoal porque ele precisa retornar uma string Beleza então aqui eu vou retornar sei lá misture aqui e ele vai parar de dar erro então a gente também consegue definir funções aqui dentro
de types e de interface é a mesma coisa aqui no Alfre tá dando erro porque ele também precisa agora né já que ele é um isler também ele também precisa da redster Vou colocar aqui então vai tornear Ok então na interface a gente também consegue fazer a mesma coisa tipo consegue colocar um login aqui sei lá que vai retornar uma string E aí aqui no user a gente consegue também fazer a mesma coisa né só para a gente tem uma uma visão e aqui no Alfre também fechou galera Então é assim que a gente consegue
usar interfaces tanto em funções quanto em objetos também né e em objeto a gente viu que elas são bem parecidas aí com os types beleza Agora vamos começar a ver classes galera aqui também foram muito aprimoradas pelo Pepsi Então vamos lá dá uma olhada em classes no Type script vamos lá então pessoal vou criar um arquivo aqui chamado classes Ok e vamos criar uma classe chamada Person aqui e a primeira coisa que a gente pode fazer com o Type é definir os tipos que essa classe vai ter no seu desse então por exemplo vamos supor
que essa Person vai ter um ID eu posso definir isso dessa forma posso colocar e digo a Number Ok eu posso colocar name igual string por exemplo tá agora aqui no constructor a gente consegue Lembrando que isso aqui galera eu ensinei no meu curso de Java script vou deixar o link aqui na no card caso você não saiba programação orientada a objetos então se você não sabe pausa aqui dá uma olhada lá no vídeo e você volta aqui depois beleza então Seguindo aqui aqui no constructor a gente também pode equipar o que ele vai receber
então vamos para que ele vai receber ai number aí a gente pode falar que o descontoide que a gente está recebendo desconto name é o name is script se a gente colocar aqui esse string ele vai dar erro aqui porque como a gente definiu aqui ele precisa ser um Number né o 2.3 pressionammer Beleza então isso é a primeira coisa que a gente tem muito melhorado né com o Type script Ok nas classes e a gente também consegue equipar métodos pessoal então por exemplo vou criar um método chamado sem my name aqui e a gente
consegue definir o que que ele vai retornar então string por exemplo tá então sei lá vou colocar um eterno aqui no 2.0 ok e a gente também consegue sei lá se a gente for assinalar aqui será que dá uma Person a gente tem que respeitar estes argumentos aqui então a gente tem que ser Number name tem que ser Felipe por exemplo né string e a gente tem que ser Number também então tipo 21 se a gente mudar isso aqui parece string lembrando ele vai dar um erro né então você não repetitivo às vezes mais é
porque eu quero que realmente você entenda isso aqui ok Fechou então a gente consegue ter métodos E também o des da classe muito muito legal e a gente também consegue galera usar interface junto com classes então a gente pode definir em uma interface em uma interface sei lá eu tô dividida aqui chamando de interface interface vamos ficar com Interface tá a gente pode definir na interface O que que a gente vai receber um desse e o que que a gente vai receber de métodos né O que a gente vai ter de metros na classe então
por exemplo eu posso criar aqui um ai Person e isso aqui é uma convenção tá você por exemplo quando você tem uma interface de uma classe você colocar o i antes de interface e colocar som aqui então aqui dentro a gente pode colocar tudo isso aqui tá então aí vou copiar e colar para ficar mais rápido então a gente pode colocar isso aqui e também o método Então vou colocar um sem my name aqui E vai retornar uma string tá a gente consegue fazer isso e agora a gente para implementar isso aqui nessa Classe A
gente usa um implantes E se a gente mudar esse ID aqui para uma string perdão para um string assim ele vai dar erro tá porque enfim a gente está implementando esse aí Person e o aí de empresa então a gente consegue usar interfaces dessa forma que com classes no Type script agora galera tem outra coisa bem legal também nas classes que são alguns modificadores que a gente pode usar no ID por exemplo se a gente colocar aqui esse ID aqui é o idioma Então vou colocar a gente não consegue alterar aqui embaixo Person e esse
personal Está se referindo a outro arquivo vou colocar tipo Felipe aqui a gente não consegue colocar Felipe ponto ID igual a sei lá 32 porque porque esse cara é read One e normalmente é melhor você deixar tudo normalmente você quer só alterar as propriedades do dias da classe dentro da classe no caso radione a gente só vai conseguir alterar dentro do constructor quando a gente é instancia a classe né se a gente tentar alterar aqui Inclusive a gente não vai conseguir tá pessoal porque isso aqui é rei Jone Ok então esse é o primeiro modificador
que a gente consegue usar o segundo é o protected o protected galera ele faz com que a variável só consiga ser acessada dentro da sua classe ou da sua subclasse a gente já vai ver o que são subclasses tá então a gente não consegue por exemplo colocar um Felipe ponto name aqui tá vendo ó Ele não aparece ó Lembrando que a gente apertava ponto contra espaço ele dá todas as sugestões aqui pra gente então como isso aqui é protecter ele não vai conseguir a gente não vai conseguir acessar isso aqui fora da classe então por
isso que nem aparece aqui para a gente acessar beleza e ele vai dar o erro aqui porque essa personagem ela precisa ser protecter daqui também e aqui pessoal Infelizmente vai dar um erro também porque enfim a gente não consegue definir uma propriedade de protector daqui na interface Então o jeito seria tirar isso aqui da interface e a gente teria é o Protex daqui normalmente Tá mas enfim vou remover aqui fica de referência para vocês mas eu vou deixar na verdade para ficar de referência para vocês vou deixar o Protect na classe ok e a gente
tem também as privates pessoal então vou colocar Private aqui em uma Private ela também não consegue ser declarada aqui então a gente também teria que tirar ela daqui Ok então a prova de pessoal ela só pode ser acessada dentro dessa classe aqui e agora vamos ver sobre classes então eu vou criar outra classe aqui chamada imploi e essa implore ela pode estender essa porção E mais uma vez pessoal isso aqui de herança eu ensinei no meu curso de Java script tá então caso você não saiba dar uma olhada lá depois você volta aqui então agora
se a gente por exemplo colocar aqui um constructor que vai receber tudo que a person recebe então é de Number aí vou colar aqui tá e a gente passar esse super aqui age normal a gente não vai conseguir galera acessar esse desconto name então sei lá vou criar um método aqui chamado que é quem eu sou né a gente não consegue galera acessar o deles perdão a gente deixou o Wade como Private né então a gente não consegue acessar o desconto age porque ele é privado e como eu falei para vocês o Protect ele é
acessível pela classe mãe e pela subclasses então aqui eu consigo acessar o name por exemplo que é protected Beleza então essas são as formas que esses modificadores esses influenciam nas subclasses agora a gente tá chegando no final do curso Então você já aprendeu muita coisa até aqui mas ainda tem uma coisinha muito importante muito legal também que eu quero te ensinar do Type script que são generics Tá então vamos criar aqui um arquivo chamado generox e que que são esses genéricos Felipe com o generax galera a gente tem meio que uma forma de passar tipos
como parâmetros então a gente consegue deixar a tipagem de funções de variáveis muito mais dinâmica vou mostrar para vocês é um conceito um pouco difícil de pegar um pouco difícil de explicar também eu vou dar o meu melhor aqui para explicar da melhor forma para você mas vamos lá então fique tranquilo caso você não consiga pegar agora caso seja um pouco difícil para você entender é normal tá é um conceito mais difícil mesmo mas vamos lá vou criar uma função aqui bem simples que ela vai só sei lá retornar o valor que ela recebe ela
vai receber um velho aqui tá ela vai retornar esse velho e esse velho eu vou colocar aqui ele é do tipo N tá ele pode ser qualquer coisa beleza agora vamos supor que a gente tem uma variável chamada Messenger aqui embaixo que vai ser basicamente o return velho eu vou passar Hello Word aqui e a gente vai ter também um count que é um vai ser um Number né então eu vou passar uns cinco aqui Então nesse caso esse messenger vai ser o hellow World né que ele vai retornar esse velho aqui e aqui embaixo
vai ser esse cinco se a gente passar o mouse aqui em cima galera do Messenger e do count eles têm um tipo N faz sentido né porque o velho aqui ele pode ser qualquer coisa então como velho é n e a gente vai retornar o velho o typer que já infere que o retorno desse dessa função aqui vai ser n né isso aqui a gente já viu durante o curso essa essa atribuição mágica de tipos que o Tite script possui mas galera com generic a gente consegue deixar esse tipo aqui do velho dinâmico então a
gente consegue meio que passar ele como parâmetro vou mostrar para vocês como que a gente faz isso segue comigo é uma sintaxe meio estranha mas segue comigo uma estrela meio nova né vai ser meio nova para você quando a gente quer receber um general aqui galera como parâmetro a gente usa duas Chaves e aqui dentro a gente usa no caso da Euro function a gente usa depois aqui do sinal de igual do primeiro sinal de igual tá antes dos parâmetros então aqui a gente usa as duas Chaves e aqui dentro a gente coloca o nome
do General que pode ser qualquer coisa pode ser T pode ser b pode ser Type pode ser qualquer coisa tá eu vou colocar T porque é mais uma convenção do tap cript mesmo você nomear o dinheiro aqui como ter beleza e agora galera esse T vai ser um parâmetro que a gente consegue passar quando a gente chama essa função Então como que a gente passa esse parâmetro aqui nessa ocasião a gente antes do de passar o parâmetro também tá então antes aqui do parênteses antes de chamar a função de fato a gente vai passar o
generic aqui mas agora a gente vai passar de fato o tipo que a gente quer assinalar para esse T então vou passar string por exemplo Ok beleza nada de novo se eu passar Mouse aqui em cima da Messenger o Type dele ainda n mas agora galera esse T neste caso aqui do Messenger vai ser uma string então a gente pode fazer isso aqui a gente pode passar esse T aqui para o velho olha que coisa sensacional Agora se a gente passar o mouse em cima aqui do velho ele vai ser o t correto e se
a gente passar o mouse em cima do Messenger ela vai ser um string porque galera porque essa string foi para cá certo então foca nessa linha aqui esquece esse scout então foca nessa linha aqui e esquece esse carro que que aconteceu por trás dos panos a gente passou primeiro a gente declarou que a gente ia receber um dinheiro aqui né como a gente fez com t e aí que a gente recebeu o deneric a gente passou o valor dele como string então é como se isso fosse string tá e como se o velho fosse string
neste caso Ok se aqui no count a gente passar um number vai ser ao contrário Isso aqui vai ser Nobre Isso vai ser Number e consequentemente o count vai ser Number também ok então esse é a forma essa é a forma que um genérico que funciona tá galera a gente consegue passar tipos como parâmetros mesmo então por exemplo se eu passar o mouse aqui no count ele é um Number porque porque esse T foi jogado para cá e esse T foi jogado para cá consequentemente o tipo de retorno vai ser um Number A gente pode
explicitamente colocar aqui que o tipo de retorno vai ser um t também sem problemas Tá e agora fica mais explícito né que a gente tá recebendo genérico que esse velho vai ser o generalic e esse O Retorno dessa função também vai ser esse genéric ok então galera é assim que a gente consegue fazer é o uso de general que sair nas nossas funções e você vê que fica muito dinâmico né a gente consegue passar parâmetros a gente consegue passar muito mais dinâmico né a gente consegue passar tipos como parâmetro que é muito muito legal a
gente consegue também usar em funções normais tá não apenas em Arcos então por exemplo eu vou comentar isso aqui com Ctrl e eu vou criar uma return velho mesma forma que só para a gente tem de referência Na verdade eu vou deixar como tá vamos fazer outro exemplo aqui OK Eu vou criar uma função galera chamada Gets first velho from Ok essa função vai basicamente pegar o primeiro valor do Away então aqui a gente vai receber eu vou colocar o rei vou colocar ele por enquanto a gente já vai usar o genérico aqui e aqui
basicamente eu vou retornar a Ray zero Beleza agora que que a gente vai fazer eu vou pegar first vou criar uma variável né first velho Chrome string vou colocar um dois aqui vou fazer a mesma coisa aqui embaixo Mas agora com Number Away e passar uma Ray de números colocar tipo 10 e 20 beleza se a gente passar o Mod aqui em cima você já deve adivinhar que ele vai ser um n né porque a gente tá passando n aqui correto beleza mas como a gente usa de Neve aqui porque pensa comigo neste caso o
primeiro valor desse Away vai ser um string concorda e o primeiro valor desse Away vai ser o Number A gente consegue usar de Neve aqui para fazer esse tipo de coisa então tenta pensar como que a gente faria isso aqui Bom vamos lá primeiro a gente precisa receber o dinheiro então Sempre que você quiser usar essa essa dinamicidade você pensa primeiro eu tenho aqui receber o dinheiro que então eu vou declarar para essa função aqui um Genérico e para declarar para uma função normal mesma forma que a gente fez aqui na warfantion a gente coloca
antes dos parâmetros Então vou colocar vou colocar outro nome agora eu vou colocar Type só para a gente ver que pode colocar realmente qualquer coisa tá e agora esse Type pessoal vai ser o que a gente vai passar aqui então neste caso como eu quero que esse Tap seja uma string Afinal Esse é o string eu vou passar string aqui Ok e agora esse Type tem que vir para cá mas isso aqui é um certo então a gente simplesmente coloca dois colchetes cara olha que coisa linda então agora ele já vai declarar que essa string
vem para cá e vai ser um arrate string e aqui a mesma coisa então se eu passar Number para cá e passar o mouse aqui em cima ele vai ser Number tá vendo ó e esse cara vai ser string porque porque esse string veio para cá e aí a gente falou que o DNA que Type vai ser o tipo desse Away e a gente vai ter uma lista desse gênero e aí sim a gente consegue ter essa esse comportamento se a gente quiser se a gente poderia deletar aqui e passar lista aqui direto tá Sem
problemas também a gente pode fazer isso aqui aí vai mais da da Escolha mesmo na verdade aqui a gente não vai conseguir galera porque Ah esse Array aqui ele precisa ser uma lista explicitamente pro time porque se a gente colocar assim sem a lista a gente consegue passar é parâmetros que não são lista né E isso aqui vai dar erro por causa disso porque né A gente só consegue pegar o elemento zero de uma lista então a gente realmente precisa passar aqui mas Vocês pegaram a ideia né que a gente pode passar qualquer coisa aqui
para um genérico Que cara é bem dinâmico mesmo ok então a gente viu na prática os genéricos funcionando e a gente pode também galera mais de um generic então aqui por exemplo posso receber te eu posso receber x eu posso receber Z e eu posso fazer o que eu quiser com esses caras então aqui embaixo por exemplo eu posso passar bulham e Number E aí ele vai atribuir o bulham para o x e o Number pro Z E aí você pode fazer o que você quiser com eles então a gente consegue passar quantos parâmetros a
gente quantos generos perdão a gente quiser Ok e tem outro General que galera bem especial que é as Promises né a gente não viu Promises aqui até agora no curso porque para você declarar que uma função retorna uma prova se você precisa usar generic Então vou criar uma função aqui por exemplo que vai return Promise basicamente e ela vai ser uma função assim né porque vai tornar uma Promise E como que eu falo para ela por tática script que essa função vai retornar uma Promise com Number na no seu resumo velho né então por exemplo
se eu fizer um retorn 5 esse cara vai retornar uma prova com Number se a gente passar o mouse aqui em cima ó a gente até ver como que a gente faz isso né vou tá escrito que já tem aquela aquela atribuição automática que a gente já viu aqui então ele já Pensa cara isso aqui é uma Promise né porque é uma função assim Retornam 5 então eu vou inferir automaticamente que o tipo dessa função é esse aqui uma promis que torna um Number então a gente já consegue ver como que a gente usa Promise
então a gente basicamente coloca Promise e aqui entre Chaves né entre genérico como a gente passa o tipo que essa prova você vai retornar então um Number por exemplo E se a gente colocar esse string aqui ele vai dar erro porque né o 5 é um Number não é inalável para string se a gente colocar cinco aqui ele vai retornar vai parar de ideia pra gente então galera isso aqui é o básico de generalic Ok é um conceito meio difícil demorar um pouquinho para pegar esse aqui mas eu me esforcei pra explicar da melhor forma
possível para você a gente também consegue galera usar generatics com classes Beleza vou mostrar para vocês aqui rapidinho então com classes vamos porque eu vou criar uma classe aqui vai ficar mais fácil para explicar na prática cara então eu vou criar uma classe aqui sei lá que Number qualquer coisa OK e essa de nerd number vai ter um valor aqui no seu desse então vou colocar zero velho aqui e esse cara vai ser ele beleza e aqui eu vou ter uma função que vai adicionar alguma coisa né aqui vou colocar XY e eu vou retornar
n aqui a gente pode pessoal deixar esse n dinâmico então aqui a gente pode passar um genek aqui tipo t e a gente pode colocar esse T Aqui também tá e o t aqui no x e o t também aqui no y e o t aqui no n também tá ele tá dando erro aqui porque a gente precisa inicializar esses caras né então se eu colocar aqui por exemplo um constructor e sei lá vou receber o dinheiro velho que vai ser um t também e aqui eu colocar dois pontos de velho igual a zero e
aqui eu colocar o som vai receber também o soma aqui como parâmetro Então são vai ser Enfim vou copiar isso aqui e aqui eu colocado esse ponto são igual ação Beleza agora quando eu declarar essa classe então por exemplo quando eu criar uma variável aqui chamada sei lá que Number eu consigo passar aqui o generic tá pessoal então eu consigo passar aqui o t vai ser um Number por exemplo E aí eu passo que velho vai ser um zero e que uma a minha função aqui vai ser vai receber isso aqui né então X =
Number Y = number e que vou retornar o x + y Vou salvar Beleza se eu mudar isso aqui para swing pessoal ele vai dar um erro aqui ó porque porque agora esse T é um string certo e a gente está passando Number então você vê como é bem dinâmico como a gente pode brincar muito com esse genera aqui né cara como é uma coisa bem poderosa assim do Type então você pode usar aí tanto em funções quanto em classes também beleza e galera eu quero mostrar outra coisinha para vocês que é mais um bônus
para você que ficou até aqui que é uma forma que votando um arquivo de classes uma forma melhor que a gente tem que declarar classes né como a gente fez aqui e como a gente fez aqui também né porque a gente tem um padrão né a gente coloca a propriedade aqui o que que vai ter no deles depois coloca elas aqui no Construtor e depois coloca aqui tipo a gente tá repetindo bastante código né como é que a gente pode mudar isso aqui para deixar bem mais fácil ó quando a gente recebe um valor e
já quer atribuir ele ao nosso diz então no caso é dia a gente recebe que atribuir ele é o nosso diz o name o age assim por diante a gente pode vai fazer o seguinte eu vou matar tudo isso aqui Na verdade eu vou criar outra classe aqui chamada Perfect só para a gente ter diferença tá pessoal que vai implementar também eu vou deixar só assim tá eu vou copiar tudo isso aqui eu vou colar aqui e como que a gente pode mudar isso aqui cara olha que simples a gente tira esse esse daqui e
aqui dentro a gente já coloca isso aqui então vou colar isso aqui vou copiar e colar aqui aqui a gente vai ter que colocar vírgula ok Então galera isso aqui é a mesma coisa que tudo isso aqui tá então uma coisa que a gente fez em sete linhas agora a gente fez em apenas 4 tá então eu vou colocar um comentário só para ficar de referência a mesma coisa aqui acima Fechou então é isso galera a gente aprendeu o fundamental aqui de táxi script você viu muita coisa aqui nessa aula cara tô bem tô bem
contente que você chegou até aqui se orgulha de você também porque enfiar um tema difícil não é todo mundo que tem essa dedicação que você demonstra até hoje agora mais como um bônus também para você que ficou até aqui e para você que trabalha com react que mexe estuda react eu vou ensinar para você Como você pode usar Type script no react Então vamos lá então galera abrir aqui um projeto react abrir no caso uma pasta né que eu vou inicializar um projeto react então vou abrir aqui o terminal e eu vou editar aqui para
criar um projeto react aqui na minha pasta e pra gente falar pra ele pro crack que a gente quer os atalhoscript a gente usa uma flagzinha dois traços template e aqui a gente coloca Type script eu vou dar entre aqui e isso aqui deve criar para a gente um projeto react já com tudo configurado em relação ao Type script beleza galera criou aqui o nosso projeto vou fechar aqui o terminal e aqui a gente tem algumas coisinhas diferentes na src por exemplo percebe que os arquivos têm essa extensão ponto TSE então quando a gente está
usando o teto script no react a gente usa essa extensão aqui tá ponto TSE não g-sx ou GS nem mesmo TS tem que ser TS X ok a gente tem aqui o nosso arquivo de configuração que a gente aprendeu né é mais uma vez não se preocupe com tudo isso aqui tá você pode dar uma olhada aos poucos nas propriedades vou deixar a documentação na descrição para você ver mas não se preocupe muito com isso aqui beleza Quero mostrar para vocês algumas coisinhas que a gente tenha mais no reak quando a gente tá usando o
strip script a primeira galera é que a gente consegue equipar props então eu vou criar um componente aqui chamado button.s eu vou criar aqui batom OK vou dar um expor de foco em baixo padrão e como que a gente consegue definir as próprias que esse cara vai receber a gente basicamente precisa criar uma interface por convenção a gente nomeia bota um propis e essa interface recebe as props desse botão né então por exemplo a gente pode colocar um clique que vai ser uma função que não retorna nada a gente pode colocar sei lá text que
vai ser uma string E aí a gente passa esse botão pro para cá Ok e agora aqui a gente retorna O que a gente quiser então vou colocar uma dívida por exemplo colocar qualquer coisa aqui e na verdade galera a gente precisa importar aqui do react um tipo tá então vou importar aqui from um cara chamado function componente e aí a gente passa essa Button prox como generic que do funk Ok e agora aqui ó se a gente fazer um destruck e apertar contra o espaço a gente tem as duas próprias que a gente recebeu
então que a gente definiu né na verdade então o teste e um clique eu vou pegar o teste aqui a gente pode colocar o teste aqui sem problemas e esse teste vai ter o tipo streaming como a gente definiu ali na nossa interface e a gente pode colocar esse um clique aqui também então vou pegar um clique aqui e a gente pode colocar ele aqui show de bola se a gente quiser receber um tildo em galera a gente tem que definir ele aqui e a gente pode pegar um cara do react Chamado reage que a
outra interface outro tipo aqui e a gente coloca ele como tipo do Children que é basicamente um elemento react esse cara aqui beleza por exemplo isso aqui é um react note fechou agora se a gente quiser usar esse botão aqui no react no nosso app perdão a gente pode importar ele e outra coisa galera Auto Import para gente ó então quando a gente dita Button e a gente clicar aqui ó ele já vai importar pra gente automaticamente porque o tex que é muito mais inteligente e mais rápido do que eu já vi script converse code
então a gente já importou o Button e aqui galera uma coisa legal deletar isso aqui ele tá falando ó que a gente precisa passar essas próprias para ele texturn Click Children porque esses parâmetros não estão como opcionais na interface se a gente deixar tudo com opcional Então vou segurar Alt e apertar aqui e aqui para selecionar os três e colocar um ponto de interrogação ele não vai dar mais erro para gente então a gente consegue definir props opcionais e obrigatórias dessa forma Então nesse caso eu vou passar só o teste como obrigatório ele vai dar
um erro para mim ó porque o text precisa ser declarado então vou passar o teste aqui tá vendo aí tem um autocomplete já inteligente ó se apertar contra espaço ele tem as próprias aqui e o tex vai ser tipo teste e é isso tá basicamente galera a gente consegue usar táticas no react assim pelas próprias a gente passar o mouse em cima aqui ó tem vários várias interfaces aqui tá já pré-definidas bem só queria dar uma introdução para vocês mesmo e vocês só sabendo isso aqui esquema da prope né como adicionar tipos próprios já vai
ajudar muito aí nos projetos de vocês então galera esse foi o curso espero que vocês tenham gostado Espero que tenham conseguido agregar algum valor para vocês espero que você tenha visto o cara o valor dos apps como que ele é excelente como que ele pode adicionar um nível de segurança muito grande nas nossas aplicações e espero que você lembre daquele compromisso cara que a gente fez no começo aqui do vídeo se você ficou até aqui no curso gostou curtiu o conteúdo quer ver mais não esquece de se inscrever aqui no canal de curtir esse curso
aqui também se curtir esse vídeo porque Cara isso me motiva muito muito a continuar trazendo conteúdo de qualidade para você e vai espalhar você fazer isso vai espalhar esse vídeo aqui para mais pessoas no YouTube que estão com o mesmo problema que você pessoas querem aprender porque querem evoluir que querem se aprimorar como programadores então você vai ajudar essas pessoas também Beleza então não esquece disso eu vou ficar por aqui mais uma vez Espero que você tenha gostado espero que eu tenha conseguido agregar um valor para você e é isso galera a gente se vê
no próximo vídeo no próximo curso Tchau tchau