TypeScript - Union

TypeScript 1.4 dá aos programas a capacidade de combinar um ou dois tipos. Os tipos de união são uma maneira poderosa de expressar um valor que pode ser um dos vários tipos. Dois ou mais tipos de dados são combinados usando o símbolo de barra vertical (|) para denotar um tipo de união. Em outras palavras, um tipo de união é escrito como uma sequência de tipos separados por barras verticais.

Sintaxe: União literal

Type1|Type2|Type3

Exemplo: Variável de Tipo de União

var val:string|number 
val = 12 
console.log("numeric value of val "+val) 
val = "This is a string" 
console.log("string value of val "+val)

No exemplo acima, o tipo da variável é união. Isso significa que a variável pode conter um número ou uma string como seu valor.

Na compilação, ele irá gerar o seguinte código JavaScript.

//Generated by typescript 1.8.10
var val;
val = 12;
console.log("numeric value of val " + val);
val = "This is a string";
console.log("string value of val " + val);

Seu resultado é o seguinte -

numeric value of val  12 
string value of val this is a string

Exemplo: tipo de união e parâmetro de função

function disp(name:string|string[]) { 
   if(typeof name == "string") { 
      console.log(name) 
   } else { 
      var i; 
      
      for(i = 0;i<name.length;i++) { 
         console.log(name[i])
      } 
   } 
} 
disp("mark") 
console.log("Printing names array....") 
disp(["Mark","Tom","Mary","John"])

A função disp () pode aceitar o argumento do tipo string ou de um array de strings.

Na compilação, ele irá gerar o seguinte código JavaScript.

//Generated by typescript 1.8.10
function disp(name) {
   if (typeof name == "string") {
      console.log(name);
   } else {
      var i;
      for (i = 0; i < name.length; i++) {
         console.log(name[i]);
      }
   }
}

disp("mark");
console.log("Printing names array....");
disp(["Mark", "Tom", "Mary", "John"]);

O resultado é o seguinte -

Mark 
Printing names array…. 
Mark 
Tom
Mary
John

Tipo de união e matrizes

Os tipos de união também podem ser aplicados a matrizes, propriedades e interfaces. A seguir ilustra o uso do tipo de união com uma matriz.

Exemplo: tipo de união e matriz

var arr:number[]|string[]; 
var i:number; 
arr = [1,2,4] 
console.log("**numeric array**")  

for(i = 0;i<arr.length;i++) { 
   console.log(arr[i]) 
}  

arr = ["Mumbai","Pune","Delhi"] 
console.log("**string array**")  

for(i = 0;i<arr.length;i++) { 
   console.log(arr[i]) 
}

O programa declara uma matriz. A matriz pode representar uma coleção numérica ou uma coleção de strings.

Na compilação, ele irá gerar o seguinte código JavaScript.

//Generated by typescript 1.8.10
var arr;
var i;
arr = [1, 2, 4];
console.log("**numeric array**");

for (i = 0; i < arr.length; i++) {
   console.log(arr[i]);
}
arr = ["Mumbai", "Pune", "Delhi"];
console.log("**string array**");

for (i = 0; i < arr.length; i++) {
   console.log(arr[i]);
}

Seu resultado é o seguinte -

**numeric array** 
1 
2 
4 
**string array** 
Mumbai 
Pune 
Delhi