A ArkTS é a linguagem fundamental para o desenvolvimento de aplicações no ecossistema HarmonyOS. Evoluindo a partir do TypeScript, ela mantém sua legibilidade característica enquanto introduz verificações estáticas rigorosas para otimizar a performance e garantir a robustez do software. Este guia explora os elementos fundamentais da linguagem, desde a representação de dados brutos até a definição de estruturas complexas.
1. Literais e Valores Fixos
Os literais representam valores constantes escritos diretamente no código-fonte. Na ArkTS, os principais tipos de literais incluem:
- Numéricos: Valores inteiros (ex: 42, 1024) ou de ponto flutuante (ex: 9.81, 0.5).
- Strings: Sequências de caracteres delimitadas por aspas simples (') ou duplas (").
- Booleanos: Representam estados lógicos, utilizando
true(verdadeiro) oufalse(falso).
// Exemplos de literais no console
console.log('Valor Inteiro:', 500);
console.log('Valor Decimal:', 25.75);
console.log('Notação Científica:', 2e3); // 2000
console.log('Estado Lógico:', true);
console.log('Texto Simples:', 'Desenvolvimento Mobile');
console.log('Texto Alternativo:', "Interface HarmonyOS");
2. Declaração de Variáveis
Variáveis funcionam como contêineres para armazenamento de informações que podem ser manipuladas durante a execução do programa. A sintaxe na ArkTS exige a definição clara do tipo de dado para garantir a segurança da memória.
// Estrutura: let nomeDaVariavel: tipo = valor
let versaoDoSistema: number = 4;
let nomeDoDispositivo: string = 'Huawei P60 Pro';
3. Sistema de Tipagem
Por ser uma linguagem de tipagem estática, a ArkTS exige que o desenvolvedor especifique a natureza dos dados. Abaixo estão os tipos primitivos e estruturados mais comuns:
3.1 Number
Diferente de algumas linguagens que separam inteiros de decimais, a ArkTS utiliza o tipo number para ambos.
let contagem: number = 100;
let precoUnitario: number = 19.99;
3.2 String
Além das aspas tradicionais, é possível utilizar crases (`) para criar strings de template, que permitem a interpolação de variáveis diretamente no texto.
let usuario: string = 'TechLead';
let mensagemBoasVindas: string = `Olá, ${usuario}. Bem-vindo ao sistema!`;
3.3 Boolean
Utilizado para controle de fluxo e condições lógicas.
let carregamentoCompleto: boolean = false;
3.4 Array (Matrizes)
Arrays são coleções ordenadas de elementos do mesmo tipo. O acesso é feito via índice, iniciando em zero.
let categorias: string[] = ['Eletrônicos', 'Livros', 'Moda'];
categorias[1] = 'Educação'; // Altera 'Livros' para 'Educação'
console.log(categorias[0]); // Saída: Eletrônicos
3.5 Enum (Enumerações)
Permite definir um conjunto de constantes nomeadas, facilitando a leitura do código em vez de usar números mágicos.
enum StatusPedido {
Pendente,
Enviado,
Entregue
}
let situacaoAtual: StatusPedido = StatusPedido.Pendente;
// Definição com valores específicos
enum CodigoErro {
NotFound = 404,
ServerError = 500
}
let erroAtivo: CodigoErro = CodigoErro.NotFound;
3.6 Union Types (Tipos de União)
Um tipo de união permite que uma variável armazene mais de um tipo de dado específico, aumentando a flexibilidade sem perder a tipagem.
type Identificador = string | number;
let idCliente: Identificador = 'USR-123'; // Válido
idCliente = 456; // Também válido
3.7 Aliases (Apelidos de Tipo)
Os Aliases permitem criar nomes personalizados para tipos existentes ou complexos, melhorando a semântica do código.
type Coordenada = number;
let latitude: Coordenada = -23.5505;
let longitude: Coordenada = -46.6333;