/*
TypeScript allows us to use more than one data type for a variable
or a function parameter. This is called union type.
*/
let code: (string | number);
code = 123; // OK
code = "ABC"; // OK
code = false; // Compiler Error
let empId: string | number;
empId = 111; // OK
empId = "E111"; // OK
empId = true; // Compiler Error
type Cow = {
name: string;
moo: () => void;
};
type Dog = {
name: string;
bark: () => void;
};
type Cat = {
name: string;
meow: () => void;
};
// union type
type Animals = Cow | Dog | Cat;
let myVar : string | number; //Variable with union type declaration
myVar = 100; //OK
myVar = 'Lokesh'; //OK
myVar = true; //Error - boolean not allowed
let myVar : string | number; //myVar can store string and number types
// Union Type: function reacts depending on x type (array of string OR string)
function welcomePeople(x: string[] | string) {
if (Array.isArray(x)) {
console.log("Hello, " + x.join(" and ")); // 'x' is 'string[]'
} else {
console.log("Welcome lone traveler " + x); // 'x' is 'string'
}
}
function numOrString(inp: string | number) {
console.log(inp);
}
/*this means can be eiter a string or a number*/