Pare de Usar TypeScript - Interfaces (Types vs. Interfaces)

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ส.ค. 2024
  • ✅ Torne-se membro para obter aulas técnicas exclusivas comigo:
    / @lucasmontano
    Article: Stop Using TypeScript Interfaces
    dev.to/afzalim...
    💜Comunidade do Discord: / discord
    ❤️ Ajude o Rio Grande do Sul, informações em lucasmontano.com/
    ✅ Meu site parece que foi feito por um DEV backend né?! Mas lá tu encontra tudo que precisa saber sobre o que tenho feito e onde estou:
    lucasmontano.com/
    ✅ 𝗢𝗦 𝗠𝗘𝗟𝗛𝗢𝗥𝗘𝗦 𝗩𝗜𝗗𝗘𝗢𝗦 𝗗𝗢 𝗖𝗔𝗡𝗔𝗟
    ▸ 3,700,000 requests do MrBeast na API do X (eu tentei e não foi barato)
    • 3,700,000 requests do ...
    ▸ Programação realmente é muito difícil?
    • Programação realmente ...
    ▸ DEV Precificando Projeto tipo Netflix (bem simples)
    • DEV Precificando Proje...
    ▸ Gemini Impressiona ao Superar Humanos : Nova IA do Google • Gemini Impressiona ao ...
    ▸ OpenAI choca o mundo +1 (mas Sora não é sobre gerar videos)
    • OpenAI Sora não é apen...
    ▸ IA que utilizo & a mentira da Gemini (Nova IA do Google)
    • IA que utilizo & a men...

ความคิดเห็น • 266

  • @luizhenriquelobo
    @luizhenriquelobo 2 หลายเดือนก่อน +146

    Esse final com o Lucas dando like no comentário e o mesmo virando um NaN e ele "isso foi feito em TS" eu rachei, KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK

  • @ApenasmaisumDev
    @ApenasmaisumDev 2 หลายเดือนก่อน +218

    O Cara escreve um artigo sem saber usar direito, deve ser um Sênior de 6 meses.

    • @filipeleonelbatista
      @filipeleonelbatista 2 หลายเดือนก่อน +11

      Ou gerado por IA 😂

    • @potors
      @potors 2 หลายเดือนก่อน

      @@filipeleonelbatista foi o que eu pensei, ele com certeza mudou alguma coisa mas tava muito bêbado porquê esse final não teve nexo nenhum

    • @NetoNeto
      @NetoNeto 2 หลายเดือนก่อน +2

      @@filipeleonelbatista lendo o texto, eu notei umas palavras fora do lugar, e aí pensei que o cara usou um translate da vida para copiar texto de artigo gringo. Para piorar, o exemplo do cara é o mesmo da documentação original... tudo muito estranho os elementos usados para construir o artigo do cara. Pode mesmo ter sido algo gerado automaticamente

    • @randerins
      @randerins 2 หลายเดือนก่อน

      traduzido pelo Google

    • @LucasLima-hj5sg
      @LucasLima-hj5sg 2 หลายเดือนก่อน +3

      "Quando eu virar sênior, não vou falar sobre o que não sei. Tem que ser humilde né kkk"
      Eu com 2 meses de sênior: "Saiba porque você deve usar 'x' e não 'y'"

  • @tarcisiome
    @tarcisiome 2 หลายเดือนก่อน +135

    O melhor é você fazer um código/tipo mais fácil e legível para o próximo DEV, porque o próximo DEV pode ser você.

    • @filipeleonelbatista
      @filipeleonelbatista 2 หลายเดือนก่อน +19

      Python no C# do proximo dev. Ninguem pensou em mim na minha vez.

    • @tarcisiome
      @tarcisiome 2 หลายเดือนก่อน +4

      @@filipeleonelbatista essa foi boa kkk

    • @peristiloperis7789
      @peristiloperis7789 2 หลายเดือนก่อน +3

      No meu caso o próximo dev sempre sou eu. E eu nunca entendo o que eu mesmo escrevi. Só preciso de 3 dias pra tudo tudo ser apagado da memória lol

    • @jbfaneto
      @jbfaneto 2 หลายเดือนก่อน +4

      vou colocar essa gambiarra aqui, vai ser a ultima vez que eu irei mexer no código -> eu mesmo na semana que vem sofrendo para lembrar o que foi aquilo que eu fiz hahaha

    • @peristiloperis7789
      @peristiloperis7789 2 หลายเดือนก่อน +1

      @@jbfaneto exato! mas aí que vc começa a melhorar d verdade.

  • @douglasmiguel7149
    @douglasmiguel7149 2 หลายเดือนก่อน +23

    a melhor analogia para este exemplo de interface e implementacao que ja vi foi quando decompilei o minecraft.. la temos a interface block e todos os outros blocos implementa essa interface, é muito legal! fica aqui o exemplo:
    interface Block {}
    class RedStone implements Block {}

  • @lucasjsantos2260
    @lucasjsantos2260 2 หลายเดือนก่อน +43

    Amigos. Type existe até em Haskell que é uma linguagem puramente funcional.
    Interface é um conceito específico de OO.
    Comparar Type com Interface faz tanto sentido quanto comparar um alicate com uma escova de dente.

  • @ps_layne
    @ps_layne 2 หลายเดือนก่อน +16

    5:40 "eu só posso tá ficando maluco" esse é o sentimento

  • @246bits
    @246bits 2 หลายเดือนก่อน +39

    "Person extends Job" é uma loucura que não faz nenhum sentido na minha cabeça. Uma pessoa NAO É um trabalho, ela TEM um. O Job precisaria entrar como atributo da classe Person assim como nome e idade...

    • @wagmit
      @wagmit 2 หลายเดือนก่อน +1

      em go isso fica delicinha, fazer uma composition e ser feliz

    • @amagami1008
      @amagami1008 2 หลายเดือนก่อน

      Mas os humanos nasceram para trabalhar e apenas isso

    • @twchronous
      @twchronous หลายเดือนก่อน +1

      interface PersonInterface {
      name: string
      job: JobInterface
      }
      essa é a implementação que pra mim deixa da maneira mais clara possível o código

  • @JonatanEdOrtiz
    @JonatanEdOrtiz 2 หลายเดือนก่อน +17

    Às vezes eu acho que pra escrever esses artigos os caras simplesmente começam a estudar algo novo e então colocam dentro do artigo todas as dúvidas que eles têm enquanto elas surgem e depois no próprio artigo vão anotando o que descobrem no meio do caminho até chegar à conclusão que responde a dúvida que ele tinha. Aí escrevem isso de uma forma como se estivessem ensinando, mas na verdade estão aprendendo.

    • @kbarreto
      @kbarreto 2 หลายเดือนก่อน +2

      Profundo

  • @magodevofficial
    @magodevofficial 2 หลายเดือนก่อน +27

    Tu reconhece um javascripto quando ele vem com o papo de "qual é melhor que qual"

  • @nathanmiguel76
    @nathanmiguel76 2 หลายเดือนก่อน +58

    Montano tá ficando igual o Vegeta.

    • @phlimma
      @phlimma 2 หลายเดือนก่อน

      Ele está virando o Pica-Pau com esse topete dele.

    • @israelpablocoelho2229
      @israelpablocoelho2229 2 หลายเดือนก่อน

      ahahhaahhaahahhaha

    • @TheDanilove90
      @TheDanilove90 2 หลายเดือนก่อน

      Ele vai ser escalado na continuação de Dragon Ball Evolution

  • @brendonoliveira2142
    @brendonoliveira2142 2 หลายเดือนก่อน +5

    No projeto que trabalho eu utilizo bastante a funcionalidade de Merging das interfaces para tipar os propriedades dos componentes de DSMs (cada dsm é um pacote npm).
    Tenho um "DSM" common que declara componentes que recebem um token de cor, mas quem de fato define quais são os valores que existem para o token de cor são os DSMs especificos.
    - DSM Base -> Define Interface BaseColor
    - DSM Components 1 -> Redefine Interface BaseColor com seus valores unicos
    - DSM Components 2 -> Redefine Interface BaseColor com seus valores unicos
    O ponto é que como um projeto pode utilizar multiplos DSMs, utilizar o Merging nas interfaces se torna muito mais escalavel e não preciso ter uma "dependencia circular" entre os pacotes.

  • @jordhan
    @jordhan 2 หลายเดือนก่อน +7

    Eu to fazendo um frontend todo em Typescript, minha regra geral é: Eu preciso limitar apenas UM valor? Type. Exemplo: type positions = "left" | "center" | "right" | undefined;
    Preciso de algo para garantir quais campos vão se passado de A para B? Interface.

    • @rodrigobleao
      @rodrigobleao 2 หลายเดือนก่อน

      eu tbm estava trabalhando assim, mas esse vídeo começou a me fazer questionar se isso é bom kkk

  • @bcampera
    @bcampera 2 หลายเดือนก่อน +16

    Como javeiro, não entendo a ideia interfaces com campos 😢 pra mim deveria ser definição de comportamentos públicos

    • @davidalexandre4103
      @davidalexandre4103 2 หลายเดือนก่อน +2

      Eu penso da mesma forma kkk, pra mim interface é contrato pra colocar actions, métodos, voids e etc, se for para colocar campos não vejo pq não usar type ou até mesmo class

    • @LucasSantos-oc6fx
      @LucasSantos-oc6fx 2 หลายเดือนก่อน +2

      Como um c#peiro devo concordar e pra mim em todo momento que ele disse interface eu entendia como classe abstrata

    • @dasmonstrum27
      @dasmonstrum27 2 หลายเดือนก่อน +1

      @@LucasSantos-oc6fx TypeScript veio do C# e não tem nenhuma diferença gritante nas interfaces entre eles, só um ou outro truque minúsculo novo do dotnet 9

    • @mso2000
      @mso2000 2 หลายเดือนก่อน

      É porque javeiro não sabe que em linguagens modernas (kotlin, Swift, etc), você consegue expor campos apenas como leitura, então você não precisa de getters e pode colocá-los nas interfaces sem problema... 😜

    • @titbarros
      @titbarros 2 หลายเดือนก่อน

      A verdade é que a nomenclatura do TS é ruim. Na real, é tudo tipo. Lembra que é js. Tudo é object. A principal diferença é a capacidade da interface ser extebdida em qq ponto da aplicação. Ela é um tipo "global". E isso é bom apenas em alguns casos e muito perigoso em outros. Esse é o ponto do artigo. Mas bem fraquinho

  • @joaov6727
    @joaov6727 2 หลายเดือนก่อน +1

    22 min aprendendo mais doq aprendi em 1 ano de faculdade, parabéns lucas montano do canal lucas montano

  • @eJuniorA2
    @eJuniorA2 4 วันที่ผ่านมา

    Eu acho declaration merging super útil pra extender interfaces globais. Se você está criando módulos por exemplo pode armazenar as extensões dentro do próprio módulo, fica tudo mais conciso e celular.

  • @GabrielSouza-sz5ju
    @GabrielSouza-sz5ju 2 หลายเดือนก่อน +4

    Você também pode usar `implements` com tipos em TypeScript.
    Tipos possuem todas as funcionalidades de interfaces (menos a habilidade de ser modificado, o que pode na verdade ser um benefício) com uma sintaxe mais simples.
    Além disso tipos são mais versáteis, podendo conter não apenas objetos como também pode ser um apelido pra outro tipo mais simples ou union (como mostrado no vídeo).
    O recomendado é usar tipo por padrão a não ser que você queira que seu contrato seja modificado.
    Pra quem quiser saber mais sobre tipos x interfaces checa esses vídeos (em inglês):
    /watch?v=zM9UPcIyyhQ
    /watch?v=Idf0zh9f3qQ
    /watch?v=oiFo2z8ILNo

    • @TheJunioGG
      @TheJunioGG 2 หลายเดือนก่อน

      Ótimo comentário, o Lucas no geral tem razão, o problema é que a abordagem do Typescript para interfaces e tipos ficou uma PORCARIA. sem contar que o cara aprendeu Typescript somente para front e usar no projeto react dele, onde ele só precisa passar tipos ou interfaces para uma Props de um Component. Isso faz pensarmos em pq as pessoas estão realmente usando Typescript no frontend é um monte de copia e cola.

  • @williamroger9375
    @williamroger9375 2 หลายเดือนก่อน

    Mais um excelente vídeo, gosto muito de ver os vídeos do Montano porque tem sempre uma pequena aula dentro do vídeo.

  • @menegatmarcelo
    @menegatmarcelo 2 หลายเดือนก่อน +2

    Essas discuções em TS são as mais divertidas! Seja o que for o assunto, no final tudo se resume a Obejtos e prototypes. JS rules, TS sempre foi e sempre vai ser só um linter gourmentizado! 🤷‍♂

  • @REDIDSoft
    @REDIDSoft 2 หลายเดือนก่อน +3

    excelente vídeo Lucas Montano do canal Lucas Montano, se o cara fala que types são melhores que interfaces ou vice-versa, ele provavelmente não entende de types nem de interfaces kkkk, sucesso!

  • @christoffersantos3419
    @christoffersantos3419 2 หลายเดือนก่อน +1

    Artigo compara chave philips com chave de fenda e o problema de exemplo é qual é melhor usar para pregar um quadro na parede.

  • @gabrielcanuto3321
    @gabrielcanuto3321 2 หลายเดือนก่อน +1

    Seguiu o mesmo roteiro do primeagen.
    Mas cá entre nós o conteúdo ta em português e mostra justamente que existe muito conteúdo por ai não tão bom
    (e as vezes dando informações erradas como este que foi avaliado).
    Precisamos de mais caras como você, fortalecendo os dev br.
    Parabéns

    • @LucasMontano
      @LucasMontano  2 หลายเดือนก่อน +1

      não sei se ele gravou sobre esse artigo ou não, talvez… também pego conteúdo do Reddit

    • @brenoepic6946
      @brenoepic6946 2 หลายเดือนก่อน +1

      prime mentioned

    • @LucasMontano
      @LucasMontano  2 หลายเดือนก่อน +1

      The Name: Lucas Montano do canal Lucas Montano

  • @felipemoreira4286
    @felipemoreira4286 หลายเดือนก่อน

    Achei muito interessante pq sua visão não é viciada só no javascript mas trazendo visão de outras linguagens isso e muito rico. Obrigado!

  • @devspeedrun
    @devspeedrun 2 หลายเดือนก่อน +20

    Regra de um typescript, esqueça tudo que aprendeu em POO

    • @helciopandelo
      @helciopandelo 2 หลายเดือนก่อน +2

      Nem a pau, é justamente pra vc usar. Ele tem uma "flexibilidade" que vem herdada do JS, mas é pra ser POO normal. Em resumo, n é pq te permitem fazer "cagada" que é pra vc fazer kkk

    • @devspeedrun
      @devspeedrun 2 หลายเดือนก่อน

      @@helciopandelo Sei disso, mas digo pela maioria dos iniciantes ou aqueles que so utilizam a tech sem saber do background, que so copia de tutorial no yt

  • @lucasfelipe-ze5sy
    @lucasfelipe-ze5sy 2 หลายเดือนก่อน +3

    O único problema das interfaces no TS é realmente o type merging, pois você pode acidentalmente declarar duas interfaces com mesmo nome e usá-las no mesmo escopo, o que poderia levar a um erro que não seria imediatamente identificável

    • @rodrigosor
      @rodrigosor 14 วันที่ผ่านมา

      @typescript-eslint/no-redeclare com ignoreDeclarationMerge

  • @mateuscardoso9635
    @mateuscardoso9635 2 หลายเดือนก่อน

    Muito foda, não tinha parado pra ver esse canal ainda.

  • @DriwChannel
    @DriwChannel 2 หลายเดือนก่อน +4

    A real é que interface não existe para TypeScript, o que existe é só uma formatação, um autocomplete. No Java por exemplo você consegue ver que a interface existe por reflection, no typescript ela se quer vai existir quando virar javascript (.js). Interface é quase uma doc no TypeScript. O BO mesmo é o cara tentar explicar algo sem conhecer o básico do POO, acredito que a intenção dele seria a de tipar um objeto de GET api/... ao invés de usar interface, o objetivo aqui seria transformar o retorno da API em objeto tipado ao invés de objeto anônimo que é a mesma coisa que você faz no "let obj = { ... }"
    @edit se bobear com os lint da vida você consegue configurar pra não ser possível a interface ser redeclarada, até por que tem coisas que não é o typescript em si, mas sim os lints da vida

  • @FWCODING
    @FWCODING 2 หลายเดือนก่อน +1

    Esse mic é muito bom, da pra ouvir os tuc tuc do teclado bem de leves kk

  • @amar0
    @amar0 2 หลายเดือนก่อน +1

    Quando estava aprendendo a utilizar o angular, que usa o TS sempre achei estranho criarem interfaces dessa maneira

  • @jonasfrancomatador1277
    @jonasfrancomatador1277 2 หลายเดือนก่อน

    Eu acho que ele queria explicar as extensão das interface quando usadas em uma função: "function xxx()" onde pessoa receber a tipagem person e job. Mas seu exemplo esta vendo somente a interface sendo usada em classe. E nesse caso ele deu exemplo de um objeto que receber uma interface que receber outra interface como extensão.

  • @matheusaugusto6701
    @matheusaugusto6701 2 หลายเดือนก่อน

    Caramba, Lucas, obrigado por esse vídeo. Estou num projeto há dois anos e hoje fui revisar essa parte de tipagem que fiz lá atrás e as entidades estavam tipadas com type.
    Até mesmo algumas tipagens que herdavam propriedades de outras estavam declaradas como type entidade2 = entidade1 & {...}. Troquei para interface entidade2 extends entidade1 {...}
    Dessa forma fica muito mais semântico

  • @murilohasse5694
    @murilohasse5694 2 หลายเดือนก่อน +3

    public class Cat extended Car
    @Overwride
    public void buzina(){ sout("Miau");}
    Essa é a vibe do autor do artigo

    • @mateuscardoso9635
      @mateuscardoso9635 2 หลายเดือนก่อน

      Claramente você não está habituado ao incrível conceito de gatocarro que é a mais nova moda em París. kkkkkk

  • @Kratos345ful
    @Kratos345ful 2 หลายเดือนก่อน +1

    Eu sou expert em Java, quando eu uso TS eu tento usar classe, type e interface como se tivesse em Java, e funciona de boa. Esse drama em cima de OO é coisa de quem só aprendeu o basico de JS e foi pro riéquiti

  • @rawa1off
    @rawa1off 2 หลายเดือนก่อน +3

    aproveita q ta começando no neovim e já faz um vídeo configurando o seu

  • @Diego_oliverira_dev
    @Diego_oliverira_dev 2 หลายเดือนก่อน +6

    meu primeiro trampo era laravel com vue quando vi que nao usava TypeScript no vue fiquei mt feliz kkkkkkk TypeScript e mt chato

    • @jhony_tech
      @jhony_tech 2 หลายเดือนก่อน

      quando vejo typescript no projeto dá até um ruim kkk

    • @alamo_DevFlow
      @alamo_DevFlow 2 หลายเดือนก่อน +4

      eu já ao contrário. vê um projeto JS sem type me faz querer sair correndo.

    • @lucasfelix7788
      @lucasfelix7788 2 หลายเดือนก่อน

      ​@@alamo_DevFlowAqui também 🤚
      Quando vejo um projeto em javascript que não usa typescript, a gastura vem forte 😅

    • @henrique_ma
      @henrique_ma หลายเดือนก่อน

      Chato e polui demais o código, fica uma salada mista

    • @alamo_DevFlow
      @alamo_DevFlow หลายเดือนก่อน

      @@henrique_ma isso eu concordo. mas qualquer projeto em qualquer linguagem quando mais complexo mais poluido a coisa fica... fzr o que. pra ter a segurança de tipos no javascript pra mim vale a pena ter o código poluido.

  • @adrianricardoscalia9228
    @adrianricardoscalia9228 27 วันที่ผ่านมา

    Aprendi muito isso trabalhando em unity com c# , entendi muito melhor a idea de interface.

  • @keonys1
    @keonys1 หลายเดือนก่อน

    Eu prefiro utilizar types pra declaração de funções e objetos que não contenham nenhum comportamento. Dessa forma o LSP me ajuda na hora de chamar essa função me dizendo exatamente o que preciso passar pra ela, não apenas um nada informativo `interface Person` me obrigando a entrar na definição da função

  • @bishop244k
    @bishop244k 2 หลายเดือนก่อน

    Concordo, e costumo utilizar utilizar interfaces para estabelecer contratos de classes, e tipos para todas outras coisas como DTOs etc..
    a criação de tipos complexos ou variável usando types fica bem mais legível, exemplo:
    type Person = {
    name: string
    lastname: string
    }
    type Street = {
    city: string
    state: string
    n: number
    }
    type Job = {
    position: string
    joinedAt: string
    }
    type PersonalInformation = {
    maritalStatus: T
    }
    //junção de tudo usando types e interfaces
    type Master = Person &
    Street &
    Omit &
    PersonalInformation
    interface Master1
    extends Person,
    Street,
    Omit,
    PersonalInformation {}
    particularmente, a escrita de types pra mim fica mais fácil de ler e em interfaces você é obrigado a adicionar {} para o Typescript entender que você quer implementar uma interface, o que não faz muito sentido.

  • @renanmachado4158
    @renanmachado4158 หลายเดือนก่อน

    Jimmy nêutron sem massagem nos palpiteiros 😂😂😂

  • @alisonhj
    @alisonhj หลายเดือนก่อน

    Composition over Inheritance no caso do Job, pois a classe Person deveria ter uma propriedade job que pode ser nula assim:
    Person {
    ...
    job?: Job
    ...
    }

    • @alisonhj
      @alisonhj หลายเดือนก่อน

      Na verdade, a class Person devia ter um array de Job que pode ser nulo. Algo assim: class Person { jobs?: Job[] }
      Os "Job" que estarão vinculados ao Person, pois um Person pode ter vários ou nenhum job dessa forma

  • @Hakunushi
    @Hakunushi 2 หลายเดือนก่อน

    em typescript as interfaces são implícitas, ou seja, qualquer objeto que contenha as propriedades e métodos da interface mesmo sem implementa-la, serão consideradas válidas para a checagem de tipo, os tipos vão sofrer a mesma inferência. A diferença então está apenas na sintaxe e no fato que tipos não se estendem mas podem na verdade ser compostos com & e |. Como dito, tipos e interfaces não precisam necessariamente serem implementados, basta o objeto sendo inferido se encaixar dentro do tipo ou interface. Mas para mim a diferença crucial é o fato de a interface você poder implementar ela explicitamente em suas classes, deixando mais clara a intuição da classe, enquanto o tipo é apenas implícito oq faz ele mais util para inferência de camadas anêmicas de dados como dtos que carregam dados externos

  • @felipeoriani
    @felipeoriani 2 หลายเดือนก่อน

    Louco mesmo é pensar que um LLM pode ser treinado com esse artigo ai haha

  • @felipemoreira4286
    @felipemoreira4286 หลายเดือนก่อน

    Muito bom seu vídeo Lucas, um problema que eu vejo e que typescript está virando meio que "padrao" usar typescript.
    Depois do seu vídeo e como o typescript t sido utilizado nos projetos pelos devs front, gostaria muito que vc assistisse o documentaria sobre a origem do typescript e entender a necessidade da Microsoft ter criado e fazer um vídeo sobre
    Ao meu ver não é todo projeto que é necessário ter typescript. Por exemplo em vue nos já temos como usar tipos nativamente então se eu bou usar typescript só pra definir tipos, já não preciso do typescript.

  • @sedraccalupeteca5769
    @sedraccalupeteca5769 2 หลายเดือนก่อน

    Isto falo por mí, na maioria dos projectos que trabalhei com React e Vue usando TypeScript, a ideia de interface são aplicadas como DTO e tratadas como classes concretas, algo que de inicio mexeu com os meus conceitos, eu que sou do mundo Java ver uma interface com propriedades e sem nenhum método de contrato

  • @LorDudugama
    @LorDudugama 2 หลายเดือนก่อน

    Usa Type em variáveis e usa Interfaces em classes. Um artigo inteiro resumido a isso.

  • @silasbispo01
    @silasbispo01 2 หลายเดือนก่อน +1

    17:00, Sim, é possível fazer isso com Typescript kkkk injeção de dependencia isso

  • @Bruno_Rasq
    @Bruno_Rasq 2 หลายเดือนก่อน +2

    É só fazer certo que vai dar certo.

  • @lucacoLg
    @lucacoLg 2 หลายเดือนก่อน +1

    Que aplicativo é esse de rascunhos e diagramas que vc usa??

  • @gleitonfranco1260
    @gleitonfranco1260 2 หลายเดือนก่อน

    Se for UML, a seta vai para a dependência/superclasse/interface

  • @yuribarros5826
    @yuribarros5826 2 หลายเดือนก่อน

    Lombok ajuda muito na criação de getters e setters, ele faz full automático.

  • @felipebiondes5434
    @felipebiondes5434 2 หลายเดือนก่อน

    Nao bugou minha mente, simplesmente faz muito mais sentimento ser assim kk

  • @GKG0REE013
    @GKG0REE013 2 หลายเดือนก่อน

    17:06 observe como o Angular trabalha:
    export class StatusComponent {
    constructor(private data: DataService) {}
    }

  • @devweb7926
    @devweb7926 2 หลายเดือนก่อน

    É exatamente isso que tu falou no início do vídeo 😂😂😂

  • @noriller
    @noriller 2 หลายเดือนก่อน

    Um dos problemas é que em um projeto grande, usando interfaces, uma hora vai querer usar o mesmo nome que já foi usado em outro lugar.
    Dai... você quer usar e vai ver que precisa implementar um monte de coisa aleatória que não precisa só por que foi definido numa interface de mesmo nome em outro lugar.
    E aquilo de passar o "job" no construtor do tipo... não é só generics?

  • @AllanLancioni
    @AllanLancioni 2 หลายเดือนก่อน +3

    Droga, achei que era um vídeo contra o TypeScript. Vim correndo.
    Não vejo a hora de as pessoas perceberem logo que é só não usar TS e pronto.

  • @m__c_s
    @m__c_s 2 หลายเดือนก่อน +1

    interface pra OO (classes e td mais). types pra todo o resto.
    se n for usar classe acho q mistura conceitos

  • @danielguirra1901
    @danielguirra1901 2 หลายเดือนก่อน

    Obrigado Lucas Montano do Canal Lucas Montano, por liberar o almoço.

  • @darlonhenrisouza8555
    @darlonhenrisouza8555 หลายเดือนก่อน

    Eu como dev senior fullstack typescript vou ser sincero
    Em todos meus projetos grandes tenho regras no Eslint que joga um erro pra caso use o ingerface ao inves do type, a razão na prática é que manter a consistência e o um só padrão na base de código evita muita dor de cabeça, quando preciso usar uma interface eu tenho que colocar um um comentario do eslint desativando a proxima linha, e no meu eslint tem um plugin que me força a justificar todas as regras que eu ignoro por comentários adicionando um contexto ao final do comentário, então ali eu coloco "using interface because ...", mas manter o padrão na base de código toda, seja com interfaces ou com types, pra mim por uma questão de organização do código chegs a ser mais importante do que a parte técnica do uso de intergaces ou type alias

  • @TheMathues123
    @TheMathues123 2 หลายเดือนก่อน

    lucas montando do canal lucas montano, em typscript frequentemente se usa interface como tipo e vice versa para a mesma função, tipar algo para não ficar como "any". Acredito que por isso o autor fez o post.

  • @bruno_lpw
    @bruno_lpw 2 หลายเดือนก่อน

    Em TS eu vejo mais problemas em usar interfaces quando deveriam ser classes do que com types.

  • @emilsonfilho168
    @emilsonfilho168 หลายเดือนก่อน

    Sou um amador de programação e pretendo futuramente tomar isso como meu trabalho. Já faço alguns códigos e tal mas não consegui acompanhar absolutamente tudo dos conteúdos do vídeo, alguém sabe de algum canto para aprender mais sobre?

  • @alisonhj
    @alisonhj หลายเดือนก่อน

    No C# eu curto a ideia de "partial" e "sealed" classes tbm

  • @joaovitor12full
    @joaovitor12full หลายเดือนก่อน

    16:00 Lucas extends Montano

  • @ferrari1645
    @ferrari1645 2 หลายเดือนก่อน +1

    Tive uma evolução como programador, ainda sou estudante e posso dizer que eu quase entendi esse vídeo. Kkkkk

  • @felipeols9132
    @felipeols9132 2 หลายเดือนก่อน

    Vim pelo Mano Deyvin! Recomendação boa demais!

  • @danilonamitala4209
    @danilonamitala4209 2 หลายเดือนก่อน

    Lucas, nesse seu exemplo em Kotlin (6:48) a relação de objetos ainda não estaria errada?
    Para mim uma vez que Job pode ser um objetos com outras propriedades, como salario, empresa, etc o correto seria colocar como sendo uma associação, ou seja Job seria uma Propriedade de pessoa, não uma extensão

  • @micasntna
    @micasntna 2 หลายเดือนก่อน

    Ele só quer ser fancy deixa o cara Lucas kkkkk 😂

  • @VanderleiRobertoMoretto
    @VanderleiRobertoMoretto 2 หลายเดือนก่อน +1

    Estou na "metade" de um sistema relativamente grande usando apenas JS (Node+Express+PostgreSQL) e sinceramente não vi necessidade de usar typeSacrifício, oops, Typescript e nem ORM - 2 coisas muito hypadas!
    Aah, mas não está 100% em produção, blá, blá, blá
    Mas duvido que, se caso apareça algo por culpa da "tipagem" , a solução vá demorar mais do que a metade do tempo que eu teria perdido com as amarras do TS!

  • @yuritavares1916
    @yuritavares1916 2 หลายเดือนก่อน

    17:06 "Uma pessoa não é o seu trabalho. Tu é muito mais que o seu próprio trabalho" - DO CANAL LUCAS MONTANO, Lucas Montano

  • @rodrigopim7693
    @rodrigopim7693 2 หลายเดือนก่อน

    Concordo contigo. Mostra pouca fundamentação em OOP.

  • @franciscofetapi8741
    @franciscofetapi8741 2 หลายเดือนก่อน +8

    Dev Typescript curioso pra saber aonde esse artigo quer chegar
    👇

    • @dbarjs
      @dbarjs 2 หลายเดือนก่อน

      O autor leu o artigo do Matt Pocock sobre o uso de Types e Interfaces e ficou emocionado.

  • @JuanElorriagaYT
    @JuanElorriagaYT 2 หลายเดือนก่อน

    Desanimei com Javascript/Typescript. Recentemente decidi usar Node.js e uma biblioteca chamada whatsapp-js para fazer um bot simples para meu numero do whats (pq não tenho grana para pagar um twilio da vida nem a api oficial no momento). Depois de semanas a biblioteca começou a dar problema, fui atrás de outra e também estava/ está com problema. Fui atrás e descobri que o problema vem da própria versão do Node.js. Consegui corrigir trocando a versão e dois dias após começou a dar erro novamente, agora o erro vem do whatsapp atualizar e a biblioteca ter parado do receber suporte. Obviamente vou corrigir e atrás de solução, mas ficar pra sempre refém de atualização e um terceiro me desanima muito. Tô errado? Com certeza, mas o desânimo é real. Não sinto mais que eu tenha tempo de vida suficiente para ficar estudando e atualizando a cada semana tudo seguindo mudanças do node.js, TS e o que for.

  • @eletricguitarguy
    @eletricguitarguy 2 หลายเดือนก่อน

    Cara, isso me deixava meio puto no TS, mas o que eu faço é:
    Preciso garantir assinaturas de métodos? Sim, então uso interfcae
    Quero tipar um objeto / alguma coisa, uso type.
    Quando devo usar Type?
    Simples:
    - Está integrando alguma API e quer tipar o retorno ou dados da requisição
    - Precisa tipar uma requisição e resposta da sua API
    - Precisa tipar retorno de dados do seu db
    Tudo isso vai de Type, caso contrário, ou seja, se o seu propósito é abstração / assinatura de métodos / inversão de controle, vai se interface.
    Qual a dificuldade disso? 🤣
    O problema é que no TS, ambos parecem muito similar, mas tu precisa usar seu cérebro pra usar do modo certo.

  • @nennogabriel
    @nennogabriel 2 หลายเดือนก่อน

    simples... se quer usar interface use o InterfaceScript, mas se está usando TypeScript use types.....
    precisa colocar tag de hironia?

  • @nichi785
    @nichi785 2 หลายเดือนก่อน +1

    Esse vídeo foi incrível kkkkkkkkkkkk

  • @randerins
    @randerins 2 หลายเดือนก่อน

    Atualmente, venho escrevendo (na verdade corrigindo) testes pra essa certa library promissora em TS que é gringa e gerou um grande impacto na comunidade no último ano. Esse certo arquivo de testes me foi apresentado de forma explícita, contém mais de 1200 linhas. Tenho corrigido e feito todos os testes passarem em menos de 1 hora (o que tava levando mais de 2 semanas pra eles), porém, com essa tipagem exagerada que tão mais pra warnings, fico em dúvida se ainda vale a pena filar um PR. E esses warnings não afetam em nada ao código da lib. Enfim, parece que TS gera mais problemas do que os resolve, em certas situações

  • @diegovinicius4186
    @diegovinicius4186 2 หลายเดือนก่อน

    O maior problema no typescript quanto a types e interface e seu uso, ai o pessoal geralmente quer usar somente uma coisa, entao ou usa types em tudo ou usa interface em tudo, e em sua grande marioria e so para definir como um dado viria de um lado para o outro... algo muito simples para entender quando utilizar, e que interface e utilizado para criacao de novas classes em seu baixo nivel, ja o types deveria ser utilizado para tipar dados que serao navegador pela plataforma, como dtos e afins

  • @hallexcosta
    @hallexcosta 2 หลายเดือนก่อน

    Eu sempre opto por usar interfaces apenas para métodos, e tipos para objetos mais complexos (e como via de regra não defino métodos para tipos apenas utilizo para definir propriedades que levam tipos primitivos ou outros tipos). Não sei se essa é a melhor forma de se usar mais atualmente para mim vem funcionando e consigo ter um controle nítido de quando usar cada uma delas.
    P.S: Alguns podem estar pensando "E quando você precisa usar uma propriedade de uma classe que implementa uma interface?"
    Jogo essa responsabilidade para um método getter que será definido dentro da interface e implemento.

    • @hallexcosta
      @hallexcosta 2 หลายเดือนก่อน

      Tirando a parte em que o código pode acabar ficando mais verboso, vocês acham que tem algum outro ponto ruim de seguir por esse lado no uso de tipos e interfaces?

  • @Apaxe2
    @Apaxe2 2 หลายเดือนก่อน

    Eu vivi pra ver um mano escrever um artigo com person extends job

  • @user-zu2bm7bb6u
    @user-zu2bm7bb6u 2 หลายเดือนก่อน

    Lucas Montano tá quase virando o PrimeAge hehehe

    • @LucasMontano
      @LucasMontano  2 หลายเดือนก่อน

      The Name: Lucas montano do canal Lucas montano

  • @klinsmannlopes8380
    @klinsmannlopes8380 26 วันที่ผ่านมา

    Qual o nome da ferramenta desse quadro ?

  • @JonatasBuenodoLivramento
    @JonatasBuenodoLivramento หลายเดือนก่อน

    Esse vídeo apesar de muito divertido (parabéns Lucas é sempre muito top seus vídeos) e os comentários irados contra o artigo só existiram por que vocês insistem em tentar olhar para o TS como se ele fosse uma linguagem OO, a única coisa que o TS é, é um Lint que faz o editores de textos terem um autocomplete, para que os bugs voltados a tipos sejam pegos em tempo de desenvolvimento
    Enquanto isso não entrar nas suas cabeça, vão ficar putos aí com o TS atoa quando comparar com linguagem OO
    Eu sou puto com o TS mas por outros motivos rs

  • @charliesamoel8828
    @charliesamoel8828 2 หลายเดือนก่อน

    Comecei a me arrepender da faculdade quando o professor não sabia o que era solid.

  • @GCoder-sl1sq
    @GCoder-sl1sq 2 หลายเดือนก่อน

    Esse é claramente o mal de uma pessoa que só estudou Typescript no conceito de OOP... triste. Voce esta redondamente correto Lucas trabalho com typescript a alguns anos e é exatamente isso que tu falou.

  • @bolakazinho.estudios323
    @bolakazinho.estudios323 หลายเดือนก่อน

    Dps do person extends Job eu vi que o cara do artigo vive na China só pode kkkk

  • @super-doutor
    @super-doutor หลายเดือนก่อน

    Types são classes abstratas e Interfaces são interfaces. São parecidos mas conceitos diferentes. Só isso. Você usa cada um para a situação que for mais interessante, não só a nível programação, mas principalmente no nível d arquitetura da plataforma.

  • @devful_
    @devful_ 2 หลายเดือนก่อน

    Em orientação a objeto eu entendo que no primeiro exemplo do Lucas, continuou como: Lucas é uma Pessoa e Lucas é um Job… ele não deveria ter Job como atributo ao invés de “implementá-lo”?
    Em OO é importante distinguir a diferença entre ser e ter. Apesar de que no TS, interface permite ser usada para definição de estrutura de “objetos” ao invés de apenas assinaturas de comportamentos

  • @titbarros
    @titbarros 2 หลายเดือนก่อน +2

    Brother... Tu viajou. Interface no typescript não tem a mesma função de uma linguagem OOP. No fim do dia, nada muda no runtime. Tu confundiu tupla com union. O grande ponto é que a interface pode ser sobrescrita em qq ponto da aplicação. Isso é bom para algumas funcionalidades, mas ruim p uso comum direto em aplicações. Tb tem a questão de ser usada em classes que vc abordou corretamente. No mais dá no mesmo type ou interface. É sim acho uma nomenclatura ruim.

  • @cebolinharenato
    @cebolinharenato 2 หลายเดือนก่อน

    Mas no caso de Typescript na maioria dos casos de uso interface e tipo funciona igual. Você só quer definir quais os campos existem no objeto porque o objeto continua sendo algo dinâmico. Por exemplo você recebe um json de uma api, você só quer definir quais os campos esperados que vai vir nessa resposta tanto usar type como interface funciona igual. Apesar de conceitualmente serem coisas diferentes na prática funcionam como se fosse a mesma coisa por isso existe essa discussão sobre qual é melhor no caso de Typescript.

  • @enzoazevedo5961
    @enzoazevedo5961 2 หลายเดือนก่อน

    A pessoa extende o Job sim po, fez hora extra kkkkkk

  • @phw4865
    @phw4865 2 หลายเดือนก่อน

    Alguem sabe qual app ele esta usando para desenhar ?

  • @heydevs1494
    @heydevs1494 2 หลายเดือนก่อน

    05:39 - "Como assim uma pessoa estende um job?"
    05:45 - "Eu não sei, eu acho que eu fiquei maluco. Eu só posso tá maluco, cara."
    Eu ri muito. Kkkkkkkkkkkkkkkkkkkk!

  • @ramonmaximiliano3557
    @ramonmaximiliano3557 2 หลายเดือนก่อน

    TypeScript é o que você usa pra evitar os erros que você não teria se não usasse TypeScript

  • @zhunk1831
    @zhunk1831 2 หลายเดือนก่อน

    Lucas , tu viu a IA que irá concorrer como parlamentar em UK ?

  • @impervictor
    @impervictor 2 หลายเดือนก่อน

    Person extends Job, boa sorte para cadastrar o pai do Chris no sistema

  • @danilohenrique4730
    @danilohenrique4730 2 หลายเดือนก่อน

    Eu costumo utilizar Interfaces no TS porque, como no fim das contas ele é apenas um superset do JS, ele é JS.
    Então os tipos são predominante dados de maneira anônima e fracamente tipada (porque é JS) e apenas obedecem o contrato da Interface, que é o principal ganho dessa bodega de TS
    Se não é pra usar Interface, uso o JS direto preula
    Esse cara do artigo ta doidão nos javascrpts

  • @henriquenas
    @henriquenas 2 หลายเดือนก่อน

    eu tenho bastante raivinha de typescript... apesar de ter pago muitos anos de boletos meus,
    mas depois que eu conheci Dart, não tem como, Dart é muito bem né meu ?

  • @rodrigomartins3495
    @rodrigomartins3495 2 หลายเดือนก่อน

    poderia disponibilizar a sua config fo neovim??

  • @gabrielaziz3485
    @gabrielaziz3485 2 หลายเดือนก่อน

    Entendo oque o cara aponta, typescript antes do deno e bun ele trabalhava apenas compilando para javascript que nao é orientado a objeto nativamente, e mesmo agora com classes ainda assim é gambiarrento, com isso concordo que utilizando node é mais seguro a utilizaçao de tipos

    • @gabrielaziz3485
      @gabrielaziz3485 2 หลายเดือนก่อน

      Eu sou programadou ruby on rails, se comentei merda pode fazer uma observaçao ai kk

  • @r.h.u.k.a
    @r.h.u.k.a 2 หลายเดือนก่อน +2

    Lucas talvez pela falta clara de conhecimento em TypeScript e principalmente falta de experiência em grandes times trabalhando no mesmo projeto usando TS tanto no front como no back, você tenha ficado tão "irritado" com o artigo. A dica que eu dou cara é não opinar sobre o que você não tem experiência. O artigo está bem claro pra quem trabalha com isso diariamente. Fazer pouco caso da tecnologia porque você trabalha com outra é coisa de estagiário punheteiro que acabou de entrar na área - minha opinião. Um abraço.

    • @gabrielaziz3485
      @gabrielaziz3485 2 หลายเดือนก่อน

      Eae rhuka kkk, mano se voce é programador, provavelmente ja viu o grafico de conhecimento por confiança, entao suponho que pelo seu comentario infeliz que ou voce é um "estagiario punheteiro", ou o criador do typescript, mas acredito que se fosse bom mesmo noque acha que é, nao estaria perdendo seu tempo aqui, gostaria que voce com seu conhecimento absoluto escrevesse uma postagem talvez no tabnews refutando os pontos abordados por ele que voce discorda, embasando em testes e documentaçoes, assim talvez vc pare de passar vergonha na internet

  • @jandersonrodrigues4529
    @jandersonrodrigues4529 หลายเดือนก่อน

    Qual programa o Lucas tá usando como lousa ?