TypeScript

Origem: Wikipédia, a enciclopédia livre.
TypeScript
Paradigma multiparadigma
Surgido em 1 de outubro de 2012 (11 anos)
Última versão 5.3.3 (6 de dezembro de 2023; há 4 meses[1][2])
Criado por Microsoft
Estilo de tipagem
  • estática
  • forte
  • inferida
Principais implementações tsc
Influenciada por
Licença: Apache 2.0
Extensão do arquivo:
  • .ts
  • .tsx
Página oficial www.typescriptlang.org

TypeScript é uma linguagem de programação de código aberto desenvolvida pela Microsoft. É um superconjunto sintático estrito de JavaScript e adiciona tipagem estática opcional à linguagem. Tipos fornecem uma maneira de descrever a forma de um objeto, fornecendo melhor documentação e permitindo que o TypeScript valide se seu código está funcionando corretamente. [3] Como TypeScript é um superconjunto de JavaScript, os programas JavaScript existentes também são programas TypeScript válidos.[3]

Foi considerada pelo público a 4ª linguagem "mais amada", de acordo com uma pesquisa conduzida pelo site Stack Overflow em 2018,[4] e está entre as 15 linguagens mais populares, de acordo com uma pesquisa conduzida pela RedMonk.[5]

Anders Hejlsberg, arquiteto da linguagem C# e criador das linguagens Delphi e Turbo Pascal, trabalhou no desenvolvimento do TypeScript.[6][7][8][9] A linguagem pode ser usada para desenvolver aplicações JavaScript no lado cliente e lado servidor (Node.js ou Deno). Existem várias opções disponíveis para transcompilação. O TypeScript Checker padrão pode ser usado,[10] ou o compilador Babel pode ser chamado para converter TypeScript em JavaScript.

TypeScript oferece suporte a arquivos de definição que podem conter informações de tipo de bibliotecas JavaScript existentes, assim como arquivos de cabeçalho C++ podem descrever a estrutura de arquivos de objeto existentes. Isso permite que outros programas usem os valores definidos nos arquivos como se fossem entidades TypeScript estaticamente digitadas. Existem arquivos de cabeçalho de terceiros para bibliotecas populares, como jQuery, MongoDB e D3.js. Cabeçalhos TypeScript para os módulos básicos do Node.js também estão disponíveis, permitindo o desenvolvimento de programas Node.js dentro do TypeScript.[11]

História[editar | editar código-fonte]

O TypeScript foi divulgado pela primeira vez em outubro de 2012 (na versão 0.8), após dois anos de desenvolvimento interno na Microsoft.[12]

Logo após o anúncio, Miguel de Icaza elogiou a linguagem em si, mas criticou a falta de suporte maduro a IDE da Microsoft, Visual Studio, que não estava disponível no Linux e no OS X naquela época.[13] [14] Em abril de 2021 há suporte em outras IDEs e editores de texto, incluindo Emacs, Vim, Webstorm, Atom[15] e o próprio Visual Studio Code da Microsoft.

TypeScript 0.9, lançado em 2013, adicionou suporte para tipos genéricos (generic types).[16]

TypeScript 1.0 foi lançado na conferência de desenvolvedores Build da Microsoft em 2014. O Update 2 do Visual Studio 2013 passa a fornecer suporte integrado para TypeScript.[17]

Em julho de 2014, a equipe de desenvolvimento anunciou um novo compilador TypeScript, alegando ganhos de desempenho de 5 vezes. Simultaneamente, o código-fonte, que estava inicialmente hospedado no CodePlex, foi movido para o GitHub.[18]

Em 22 de setembro de 2016, o TypeScript 2.0 foi lançado; ele introduziu vários recursos, incluindo a capacidade de os programadores opcionalmente impedirem que variáveis ​​recebam valores nulos, [19] às vezes referido como o erro de bilhões de dólares.

TypeScript 3.0 foi lançado em 30 de julho de 2018,[20] trazendo muitas adições à linguagem como expressões de spread, parâmetros rest com tipos de tupla, parâmetros rest genéricos e assim por diante.

TypeScript 4.0 foi lançado em 20 de agosto de 2020.[21] Embora esta versão não tenha introduzido nenhuma alteração significativa, ele adicionou recursos de linguagem, como Custom JSX Factories e Variadic Tuple Types.[21]

Exemplos[editar | editar código-fonte]

Genéricos[editar | editar código-fonte]

Exemplo de uma árvore binária genérica em TypeScript:

interface Tree<T> {
  value: T,
  left?: Tree<T>, // Tree<T> | undefined
  right?: Tree<T>,
}

let tree: Tree<number> = {
  value: 5.96,
  // left: undefined,
  right: { value: 1.0 },
};

// Desconstrói `value`, ignorando demais membros
let { value } = tree;
console.log(value);

// Desconstrói membros, ignorando `value`
let { left, right } = tree;
console.log(`-> ${left?.value}`);
console.log(`-> ${right?.value}`);

Componentes Web[editar | editar código-fonte]

Exemplo de uma interface gráfica usando componentes Web com o Lit:

import { css, html, LitElement } from 'lit';
import { customElement, property, state } from 'lit/decorators.js';
import { choose } from 'lit/directives/choose.js';

@customElement('my-counter')
export class Counter extends LitElement {
  static styles = css`
    :host {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 100vh;
    }
    p {
      font: 1.125rem Noto, sans-serif;
    }
  `;

  @property({ type: Number })
  start = 5;

  @state()
  private _count: number;

  connectedCallback() {
    super.connectedCallback();
    this._count = Math.max(0, this.start);
  }

  render() {
    const disabled = this._count === 0;
    return html`
      ${choose(this._count, [
        [0, () => html`<p>Fim.</p>`],
        [1, () => html`<p>Encerra no próximo clique!</p>`]
      ],
      () => html`<p>Encerra em ${this._count} cliques.</p>`)}
      <button ?disabled=${disabled} @click=${this.decrement}>Contar</button>
    `;
  }
 
  decrement() {
    if (this._count > 0)
      this._count--;
  }
}

E o uso:

<my-counter start="5"></my-counter>

Ver também[editar | editar código-fonte]

Referências

  1. «Release TypeScript 5.3.3» (em inglês). 6 de dezembro de 2023. Consultado em 16 de dezembro de 2023 
  2. «Announcing TypeScript 5.3». devblogs.microsoft.com (em inglês). 20 de novembro de 2023. Consultado em 23 de novembro de 2023 
  3. a b «Typed JavaScript at Any Scale.». www.typescriptlang.org (em inglês). Consultado em 20 de julho de 2021 
  4. «Stack Overflow Developer Survey 2018». Stack Overflow. Consultado em 16 de abril de 2018 
  5. O'Grady, Stephen (18 de julho de 2019). «The RedMonk Programming Language Rankings: January 2018» (em inglês). RedMonk. Consultado em 23 de agosto de 2019 
  6. Foley, Mary Jo (1 de outubro de 2012). «Microsoft takes the wraps off TypeScript, a superset of JavaScript». ZDNet. CBS Interactive. Consultado em 26 de abril de 2015 
  7. Somasegar, S. (1 de outubro de 2012). «Somasegar's blog». Somasegar’s blog. Microsoft. Consultado em 26 de abril de 2015 
  8. Baxter-Reynolds, Matt (1 de outubro de 2012). «Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?». ZDNet. Consultado em 26 de abril de 2015 
  9. Jackson, Joab (1 de outubro de 2012). «Microsoft Augments Javascript for Large-scale Development». CIO. IDG Enterprise. Consultado em 26 de abril de 2015 
  10. «TypeScript Programming with Visual Studio Code». code.visualstudio.com (em inglês). Consultado em 20 de julho de 2021 
  11. «GitHub - DefinitelyTyped/DefinitelyTyped: The repository for high quality TypeScript type definitions.». GitHub (em inglês). Consultado em 20 de julho de 2021 
  12. staff, IDG News Service (1 de outubro de 2012). «Microsoft augments JavaScript for large-scale development». InfoWorld (em inglês). Consultado em 20 de julho de 2021 
  13. «TypeScript: First Impressions - Miguel de Icaza». tirania.org. Consultado em 20 de julho de 2021 
  14. Baxter-Reynolds, Matt. «Microsoft TypeScript: Can the father of C# save us from the tyranny of JavaScript?». ZDNet (em inglês). Consultado em 20 de julho de 2021 
  15. «GitHub - TypeStrong/atom-typescript: The only TypeScript package you will ever need». GitHub (em inglês). Consultado em 20 de julho de 2021 
  16. Francisco, Neil McAllister in San. «TypeScript 0.9 arrives with new compiler, support for generics». www.theregister.com (em inglês). Consultado em 20 de julho de 2021 
  17. «Microsoft TypeScript graduates to Visual Studio». PCWorld (em inglês). 25 de fevereiro de 2014. Consultado em 20 de julho de 2021 
  18. «New Compiler and Moving to GitHub». TypeScript (em inglês). 21 de julho de 2014. Consultado em 20 de julho de 2021 
  19. Staff, Ars (22 de setembro de 2016). «TypeScript, Microsoft's JavaScript for big applications, reaches version 2.0». Ars Technica (em inglês). Consultado em 20 de julho de 2021 
  20. «Announcing TypeScript 3.0». TypeScript (em inglês). 30 de julho de 2018. Consultado em 20 de julho de 2021 
  21. a b «Announcing TypeScript 4.0». TypeScript (em inglês). 20 de agosto de 2020. Consultado em 20 de julho de 2021 

Ligações externas[editar | editar código-fonte]


Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.