diff options
Diffstat (limited to 'typescript.html.markdown')
| -rw-r--r-- | typescript.html.markdown | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/typescript.html.markdown b/typescript.html.markdown index ba4a9e71..cf2111d5 100644 --- a/typescript.html.markdown +++ b/typescript.html.markdown @@ -223,6 +223,43 @@ moreNumbers[5] = 5; // Error, elements are read-only  moreNumbers.push(5); // Error, no push method (because it mutates array)  moreNumbers.length = 3; // Error, length is read-only  numbers = moreNumbers; // Error, mutating methods are missing + +// Tagged Union Types for modelling state that can be in one of many shapes +type State =  +  | { type: "loading" } +  | { type: "success", value: number } +  | { type: "error", message: string }; + +declare const state: State; +if (state.type === "success") { +  console.log(state.value); +} else if (state.type === "error") { +  console.error(state.message); +} + +// Iterators and Generators + +// for..of statement +// iterate over the list of values on the object being iterated +let arrayOfAnyType = [1, "string", false]; +for (const val of arrayOfAnyType) { +    console.log(val); // 1, "string", false +} + +let list = [4, 5, 6]; +for (const i of list) { +   console.log(i); // 4, 5, 6 +} + +// for..in statement +// iterate over the list of keys on the object being iterated +for (const i in list) { +   console.log(i); // 0, 1, 2 +} + + + +  ```  ## Further Reading | 
