UMA Visão Dos Recursos Do TeampScript 3
O Thmyscript É UMA Linguagem Commitada Objeeto, de Código Aberto E Foreptede Tipada Desenvolvida e Mantida Pela Microsoft, EM SuperConjunto Do JavaScript Muito популярны, Que Foi Construído Para Theser Tipos Estáticos PARA o JavaScript Modero. O CommitAdor Thmyscripts Lê UM Código TypeScript, Que Tem Coisas Como Deckarações de Tipo E Anotações de Tipo, e Emite UM JavaScript Limpo E Emite Com Essas Construções Transformadas E Removidas. Esse Código é Executado EM Qualkquer Ambiente de Execução Ecmascript Como Seus Navegadores Favoritos E Node.js.
Emssencia, Essa Essência Значение Analisar Seu Código Para Capturar CoiSas Como Bugs e Erros de digitação Antes que os usuários Encontrem Eles; MAS Linguagem Traz Mais Que Isso – Даниэль Розенвассер
Neste Post, Vovê alguns recursos inveríveis que foram fornecidos com o Tymdercript Nas Várias versões 3.x. O typeycript está atualmente Na Versão 3.4 E A Tróxima Versão Está Configurada Para Ser Lançada Нет Final Deste Mês Отказ
Versões de Teadncript:
- 3.0 Lançado Em Julho de 2018
- 3.1 Lançado EM Setembro de 2018
- 3.2 Lançado EM Novembro de 2018
- 3.3 lançado em janeiro de 2019
- 3.4 Lançado EM Março de 2019
Esses novos recursos serão explicaDos Em Ordem Cronológica:
UMA Dica Gratuita: используйте Бит (github) Para Gerenciar, Compartilhar E Reutilizar Facilmente Seus Components JS/TS. Modullidade E Reutilização São Fatatores-Shave Para UM Código Melhor E Mais English All!
Используйте Bit Para Compartilhar Seus Compents (UM Exemplo)
Este novo conceito Foi Lançado Com o Tymyscript 3.0, Passicamente Progressious Que UM Projeto Tymdercript Conding de Outro Projeto Teamscript Referenciando OS Arquivos tsconfig.json Отказ Isso Incentiva Uma Maneira Mais Modular De Escrever Código. O Tymdercript 3.0 Também riduz um novo modo para o TSC флаг --buildflag Que Funciona Perfeitameamente Com в качестве реферации делают PROJETO PARA PARA CONDRUSHõES MAIS RAPIDAS.
Um Novo Tipo Superior Também Foi struduzido no typearcript 3.0 o Типо Неизвестно Отказ É como o Tipo любой , Mas ém Tipo Seguro Para Uso. EM Uso, Qualquer Coisa Pode Ser Atribuída Ao Tipo Неизвестно , Mas o Tipo Неизвестно NãO E Atribuível A Nada Além De Si Mesmo E любой SEM UMA Подтвердитьção de Tipo OU UM Estreitamento de Tipo Baseado Em Fluco de Controle.
Para o desenvolvimenta quicketent jsx em ract com jsx, o tymyscript 3.0 é fornecido com ub Para Um Novo Alias de Tipos Нет пространства имен JSX Чамадо БиблиотекамаратаТтрибуты . Ém the tipo auxiliar que Определить alterações nos tipos das реквизит AM UM Compentes Antes DO SEU USO. Isso Agora Premite Modificações EM TORNO DAS ROPS E MAPEAMEDOS FORNECIDOS E DREADIDOS.
export interface Props {
name: string;
}
export class Greet extends React.Component {
render() {
const { name } = this.props;
return Hello {name.toUpperCase()}!;
}
static defaultProps = { name: "world"};
}
// O tipo é verificado! Nenhuma asserção de tipo é necessária!
let el =
ЭТО ГА ГАЕТИРОВАННЫЙ ОСУЩЕСТВЕННЫЙ, НЕТ ЭНТАНТО, КУА КАК ПРОБУДЕНТАДС PADRãO S sO REFFERIDAS PARTIR DO DO TIPO DAS PROPRIEDADES DO дефолтныеProps , Portanto, SE UMA Anotação de Tipo Expliccito для Adiatada, O Commitalador Não Poderá Identialialar в качестве Propriedades Padrão.
No Typearcript 3.1, AO Invés de induzire um Novo Conceito Para MapeAmento EM TUPLA, OS Tipos de Objeto Mapeados Agora Funcionam Como Deveriam Ao Iterar Sobre Tuplas E Archays. Isso Connera Que, SE VOCê Já estiver usando tipos mapeados, como Частичный ou Требуется Д.А. lib.d.ts. ELES Funciaparam Accueted EM TUPLAS E массивы. Isso deixa o tymdercriptle melhor equipado para sepressar funções semelhantes a Обещание. Все Отказ
type MapToPromise= { [K in keyof T]: Promise }; type Coordinate = [number, number] type PromiseCoordinate = MapToPromise ; // [Promise , Promise ]
Maptopromise Pega Um Tipo T E, QUANDO ESSE TIPO E SEMELHANTE UMA TUPLA, COMO Координировать , сомневался как проприветные номинальные соискания São ConvertidaS. Эм [номер, номер] Существовало Duas Propriedades Номеадас НОМИКАМЕНТ: 0 е 1 Отказ QUANDO BELOWBEM UMA TUPLA COMO ESSA, MapToprish Cria Uma Nova Tupla Onde Asde Propriedades 0 е 1 Сан Обещания Do Tipo оригинал. Então o Tipo Recishante Primisecoordinate ACABA COM O TIPO [Обещание <номер>, обещать <номер>] Отказ
Este ém rucrouroso muito intercente fornecido com resão do typeyction 3.1, UMA Forma de desenvolveor e o Commitaador USAREM NOVOS RECURSOS E ACOMPANHAREM VERSIS EM USO AO MESMO TEMPO. Ao Usar A Resolução de Módulo Узел Нет Typearcript 3.1, quando o tymentscript abre rrquivo package.json Para Descobrir Quais Arquivos Ele Precisa Ler, Elema Premiro Analisa UM NOVO Campo Chamado TymbSversions . Им package.json Comm Campo Типографы Поде SER Assim:
{
"name": "package-name",
"version": "1.0",
"types": "./index.d.ts",
"typesVersions": {
">=3.1": { "*": ["ts3.1/*"] }
}
}
О package.json Informa Ao Tymdercript Para Veriveristar SE A Versão Atroom Do TymerctScript Está Sendo Executada. SE для 3,1 oussore, ELE USA o Caminho que você em em relação ao pacote e lê partir da pasta TS3.1. .
JavaScript Tem OS Métodos связывать , Позвоните е Применить que podem ser utilizados nas funções que nos permitem fazer coisas como conectar o Это Epplear Parcialmente Argumentos, Chamadas de Funções Comm доблесть Diferente Пара Это EMAR Funções Comm Array Para OS Seus Argugeos. Equipe Workcript Chamescript Demorou UM POUCO PARA MODICAR ESSAS FUNCHõES E Inciblemente, Todas Elas Charequiam Qualkquer Número de Arguceos E Retornavam любой Отказ
Na Versão 3.1, Eles Pegaram OS Tipos de Parâmetro E Combinaram Com o Conceito de Modelagem de listas de Parâmetros Com Tipos de Tupla, Para Garantir o Uso de Bind , Позвоните е Применить que são mais estritamente controlados quando usamos uma nova flagmada strithbindcallapply Отказ Ao Utilizar Esta Nova Flag, ОС Métodos EM Objetos Que Podem Ser Chamadas São Descriptos Por UM NOVO Tipo Global Chamado Callablefunction Que Decdara Versões Mais Estritas Das Assinaturas пункт Bind , Позвоните , Е Применить Отказ
Por Exemplo:
function foo(a: number, b: string): string {
return a + b;
}
// erro: poucos argumentos
let a = foo.apply(undefined, [10]);
// erro: segundo argumento é um número
let b = foo.apply(undefined, [10, 20]);
// erro: muitos argumentos
let c = foo.apply(undefined, [10, "hello", 30]);
// okay! retorna uma string
let d = foo.apply(undefined, [10, "hello"]);
Assima, Quer Vova Faça Alguma Meta-Programação Softisticada OU Использование Padrões Site Como Métodos de Vinculação EM Suas Instâncias de Classe, Esse Recurso Pode Ajudar A Capturar Muitos Bugs.
Bigint é rom objeto Interno que ornece UMA Maneira de Chean Números Inteiros Maiores Que 2 Evelado á 53, Que É O Maior Número Que o JavaScript Pode Come Segurança COM O Primitivo Номер Отказ O Typeycript 3.2 Traz Verifeação de Tipo Para Bigints, BEM COMO Supore Para A emissão de Litterais Bigint Ao Utilizar esnext. .
Sintaxe Нет Typearcript Para o Novo Tipo Primitivo É Chamado de Bigint Отказ Obe obe inder um бинти Chamando a Função Bigint () ou ed rescrevendo rick listal bigint adicionando um n Нет Final de Qualkquer Литерал Numérico Inteiro:
// função BigInt
let foo: bigint = BigInt(100);
// um literal BigInt
let bar: bigint = 100n;
// *Dá um tapa no capô da função fibonacci*
// Esse bad boy retorna ints que podem ficar *tão* grande!
function fibonacci(n: bigint) {
let result = 1n;
for (let last = 0n, i = 0n; i < n; i++) {
const current = result;
result += last;
last = current;
}
return result;
}
fibonacci(10000n)
Нетприссу 3.2, tsconfig.json Поде от Ser Resolvido Da Pasta Node_Modules Отказ AO USAR UM CAMINHO STRPERS PARA O CAMPO «Расширение» нет tsconfig.json TyplectScripter Mergulhará Nos Pacotes делают Node_Modules Отказ
{
"extends": "@my-team/tsconfig-base",
"include": ["./**/*"]
"compilerOptions": {
// Você pode mudar opções por projeto.
"strictBindCallApply": false,
}
}
Aqui, o Tymdercript Irá Olhar Em Node_Modules E Procurar POR UM PACOTE @ My-Team/Tsconfig-Base Отказ EM CADA UM DESSES POCOTES, o Tymdercript Verifea Primeiro SE package.json контент ими кампо "Tsconfig" E, EM Seguida, Tenta Carregar Ur Arquivo de Configuração Desse Campo. SE NãO Escountir, o TextScript Tentará ler de um tsconfig.json Na Raiz Desse Picote. Isso é semelhante Ao Processo de Pesquisa de Arquivos .js EM POCOTES QUE O o Узел США E O Processo de Pesquisa de Arquivos .dts.ts. Que o Tymdercript JA USA. Представьте себе Como Isso é útil Para Projetos Muito Grandes!
O Tymdercript 3,4 TRAZ UMA NOVA Construção Para Valores Liteais Chamado Asserções const Отказ Sintaxe é Uma Apirmação de Tipo const Нет Лугара Дус Ном-Ду Типо (Por Exemplo 123 As Const ). Quando construímos novas espressões lictais com asserções const , Подемос Синазар Para a linguagem que ОС массивы São Somente Tuplas, Ou Que Os Objetos Liteais Tem Propriedades de Somente Leitura.
// Tipo '"hello"'
let x = "hello" as const;
// Tipo 'readonly [10, 20]'
let y = [10, 20] as const;
// Tipo '{ readonly text: "hello" }'
let z = { text: "hello" } as const;
Equipe Do Cartmentcript Também Trabalhou Na árdua Tarefa de Tentar Acessar Valores No Escopo Global, O Novo Tymerptscript 3.4 struduz o Suporte Para Verifeação de Tipo No Novo Objeto Do Ecmascript Globalthis – ESTA É UMA Variável Global Que Aponta Para o Escopo Global. AO CONTRARIO DE ARTRARS Soluções, Globalthis Fornece UMA Maneira Padrão Para Acessar o Escopo Global Que Pode Ser Usado Em Difeerentes Ambientes.
// em um arquivo global: var abc = 100; // Se refere ao 'abc' acima. globalThis.abc = 200;
Perceba que variveis globais takeradas com Пусть е const NãO APARECEM EM. Globalthis Отказ
VOCO FOI APRESENTADO à Maioria Dos Novos Recursos Do Tymyscript Desde A Versão 3.0, Próxima Versão Do Teamescripts Será Lançada EM Algumas Semanas, de Acordo Com o Ротеро Офирован Отказ Тодас как alterações podem ser Vistas Aqui Отказ Qual É O Seu Recurso Favorito?
https://blog.bitsrc.io/11-angular-component-libraries-you-should-know-in-2018-e9f9c9d544ff
https://blog.bitsrc.io/6-javascript-user-authentication-libraries-for-2019-6c7c45fbe458
https://blog.bitsrc.io/how-to-easily-share-react-components-between-projects-3dd42149c09
- Новые функции в Teadycript вы не знали, что существует , Escrito оригинал POR @viclotana.
Оригинал: “https://dev.to/oieduardorabelo/typescript-novidades-que-voce-nao-conhecia-22cl”