Type Aliases, Union Types, Literal Types, Index Signature
You can find different usages of Type Aliases in the following demo code.
Type Aliases is defined with type
word.
Union Types is defined with the |
character to separate the different possible types.
Literal Types can be string, number or boolean
type SelectedEvent = "Click"; // string literal type
const buttonEvent: SelectedEvent = "Click";
type Color = "Red" | "Green" | "Blue"; // string literal type with union type
const buttonForeColor: Color = "Red";
type num = 1 | 3 | 5 | 7 | 9; // number literal type with union type
type bool = true | false; // boolean literal type with union type
type TRUE = true;
type FALSE = false;
Index Signature is defined as below
type Dictionary = {
[index: string]: any;
};
const person: Dictionary = {
"firstName": "Kenan",
"lastName": "Hancer",
"age": 36
};
interface StringArray {
[index: number]: string;
}
const names: StringArray = ["Bob", "Fred"];
let name1: string = names[0];
Type Aliases can be used with Union Types and Literal Types as below
type obj = {success: true} | {success: false}; // object
type Result<T> = { success: true, value: T } | { success: false, error: string | number }; // object
type PersonCommonFields = { firstName: string, lastName: string };
type Person = PersonCommonFields & { isDeleted: true | false };
type Name = string; // simple type
type NameResolver = () => string; // function
type NameOrResolver = Name | NameResolver;