TypeScript
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]
TypeScript | |
---|---|
Paradigma | multiparadigma |
Surgido em | 1 de outubro de 2012 (12 anos) |
Última versão | 5.4.5 (10 de abril de 2024[1][2]) |
Criado por | Microsoft |
Estilo de tipagem |
|
Principais implementações | tsc |
Influenciada por | |
Licença | Apache 2.0 |
Extensão do arquivo |
|
Página oficial | www |
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
editarO 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
editarGenéricos
editarExemplo 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 },
};
// Desestrutura `value`, ignorando demais membros
let { value } = tree;
console.log(value);
// Desestrutura membros, ignorando `value`
let { left, right } = tree;
console.log(`-> ${left?.value}`);
console.log(`-> ${right?.value}`);
Componentes Web
editarExemplo 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;
gap: 8px;
height: 100vh;
}
.label {
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`<span class="label">Fim.</span>`],
[1, () => html`<span class="label">Encerra no próximo clique!</span>`]
],
() => html`<span class="label">Encerra em ${this._count} cliques.</span>`)}
<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
editarReferências
- ↑ «Release TypeScript 5.4.5» (em inglês). 10 de abril de 2024. Consultado em 1 de maio de 2024
- ↑ Rosenwasser, Daniel (6 de março de 2024). «Announcing TypeScript 5.4». devblogs.microsoft.com (em inglês). Consultado em 1 de maio de 2024
- ↑ a b «Typed JavaScript at Any Scale.». www.typescriptlang.org (em inglês). Consultado em 20 de julho de 2021
- ↑ «Stack Overflow Developer Survey 2018». Stack Overflow. Consultado em 16 de abril de 2018
- ↑ 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
- ↑ 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
- ↑ Somasegar, S. (1 de outubro de 2012). «Somasegar's blog». Somasegar’s blog. Microsoft. Consultado em 26 de abril de 2015
- ↑ 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
- ↑ Jackson, Joab (1 de outubro de 2012). «Microsoft Augments Javascript for Large-scale Development». CIO. IDG Enterprise. Consultado em 26 de abril de 2015
- ↑ «TypeScript Programming with Visual Studio Code». code.visualstudio.com (em inglês). Consultado em 20 de julho de 2021
- ↑ «GitHub - DefinitelyTyped/DefinitelyTyped: The repository for high quality TypeScript type definitions.». GitHub (em inglês). Consultado em 20 de julho de 2021
- ↑ 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
- ↑ «TypeScript: First Impressions - Miguel de Icaza». tirania.org. Consultado em 20 de julho de 2021
- ↑ 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
- ↑ «GitHub - TypeStrong/atom-typescript: The only TypeScript package you will ever need». GitHub (em inglês). Consultado em 20 de julho de 2021
- ↑ 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
- ↑ «Microsoft TypeScript graduates to Visual Studio». PCWorld (em inglês). 25 de fevereiro de 2014. Consultado em 20 de julho de 2021
- ↑ «New Compiler and Moving to GitHub». TypeScript (em inglês). 21 de julho de 2014. Consultado em 20 de julho de 2021
- ↑ 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
- ↑ «Announcing TypeScript 3.0». TypeScript (em inglês). 30 de julho de 2018. Consultado em 20 de julho de 2021
- ↑ 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