TypeScript with Web
O DOM (Document Object Model) é a API essencial para
trabalhar com uma página web, e o TypeSctipt tem
um bom suporte para essa API.
Vamos criar um popover para ser exibido quando você pressionar "Executar"
na barra de ferramentas no topo.
// Perceba que o popover está tipado corretamente para ser um HTMLDivElement
especificamente porque passamos em uma "div".
Para tornar possível reexecutar esse código, vamos primeiro
adicionar uma função para remover o popover se ele já estiver presente.
const popover = document.createElement("div");
popover.id = "popover-exemplo";
// Podemos definir os estilos em linha no elemento através da
propriedade .style em um HTMLElement - isso é completamente tipado.
const removePopover = () => {
const popoverExistente = document.getElementById(popover.id);
if (popoverExistente && popoverExistente.parentElement) {
popoverExistente.parentElement.removeChild(popoverExistente);
}
};
// Então chame em seguida.
removePopover();
// Para adicionar conteúdo ao popover, precisamos incluir
um elemento parágrafo e usá-lo para adicionar algum texto.
popover.style.backgroundColor = "#0078D4";
popover.style.color = "white";
popover.style.border = "1px solid black";
popover.style.position = "fixed";
popover.style.bottom = "10px";
popover.style.right = "20px";
popover.style.width = "200px";
popover.style.height = "100px";
popover.style.padding = "10px";
// Incluindo atributos CSS mais obscuros,ou depreciados.
popover.style.webkitBorderRadius = "4px";
// Se você apertar "Run" acima, então o popup deve aparecer
no canto inferior esquerdo, podendo ser fechado clicando
no x no canto superior direito.
Esse exemplo demonstra como você pode trabalhar com a API do DOM
no JavaScript - mas usando TypeScript para prover ótimo
suporte ferramental.
Existe um exemplo estendido para o ferramental TypeScript com
WebGL disponível aqui: example:typescript-with-webgl
const mensagem = document.createElement("p");
mensagem.textContent = "Exemplo de popover";
// E também adicionaremos um botão de fechar.
const botaoFechar = document.createElement("a");
botaoFechar.textContent = "X";
botaoFechar.style.position = "absolute";
botaoFechar.style.top = "3px";
botaoFechar.style.right = "8px";
botaoFechar.style.color = "white";
botaoFechar.onclick = () => {
removePopover();
};
// Então adicione todos esses elementos na página.
popover.appendChild(mensagem);
popover.appendChild(botaoFechar);
document.body.appendChild(popover);