Type Assertion: Conversão para um Tipo Específico - TypeScript
Type Assertion representa um modelo de conversão do valor de uma variável para um tipo específico. Em certas situações, uma variável pode representar um tipo amplo, como any
union
Como exemplo, vamos considerar uma tarefa simples: há um elemento HTML na página web com id="header"
document.getElementById()
const header = document.getElementById("header");
header.innerText = "Hello Typescript!";
No entanto, em TypeScript, essa função retorna uma união de HTMLElement | null
null
header.innerText
null
Entretanto, pode acontecer de sabermos com certeza que esse elemento existe na página. Há várias maneiras de resolver esse problema e indicar ao compilador que está tudo certo. Uma delas é a conversão de tipos usando Type Assertion.
Existem duas formas de realizar essa conversão. A primeira é usar colchetes angulares:
const header = <HTMLElement>document.getElementById("header");
header.innerText = "Hello Typescript!";
Antes do valor, entre colchetes angulares, especificamos o tipo para o qual queremos realizar a conversão. Assim, neste caso, obtemos um objeto do tipo HTMLElement
A segunda forma é aplicar o operador as
const header = document.getElementById("header") as HTMLElement;
header.innerText = "Hello Typescript!";
No entanto, tais conversões serão válidas se soubermos com certeza que o valor pode ser convertido para o tipo desejado. Por exemplo, se existe um elemento com id="header"
HTMLElement