String literal type
The string literal type is used to restrict the value to only one of a few strings.
type EventNames = 'click' | 'scroll' | 'mousemove';
function handleEvent(ele: Element, event: EventNames) {
// do something
}
handleEvent(document.getElementById('hello'), 'scroll'); // No problem!
handleEvent(document.getElementById('world'), 'dblclick'); // Error, event cannot be'dblclick'
// index.ts(7,47): error TS2345: Argument of type '"dblclick"' is not assignable to parameter of type 'EventNames'.
In the above example, we use type to define a string literal type EventNames, which can only take one of the three strings. Note that both type aliases and string literal types are defined using type.