about summary refs log tree commit diff stats
path: root/ts/thinking-about-unions/left-pad.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ts/thinking-about-unions/left-pad.ts')
-rw-r--r--ts/thinking-about-unions/left-pad.ts27
1 files changed, 14 insertions, 13 deletions
diff --git a/ts/thinking-about-unions/left-pad.ts b/ts/thinking-about-unions/left-pad.ts
index e75e38d..95f6d51 100644
--- a/ts/thinking-about-unions/left-pad.ts
+++ b/ts/thinking-about-unions/left-pad.ts
@@ -1,9 +1,9 @@
-/* 
+/*
 
 A stupidly simple example of unions.
 
 Unions can be used to describe a type that is actually several different types.
-Here, the Padding type is a union of either a number or a string. 
+Here, the Padding type is a union of either a number or a string.
 Then, leftPad uses the union type so that it can accept either sort of type.
 
 */
@@ -11,16 +11,17 @@ Then, leftPad uses the union type so that it can accept either sort of type.
 type Padding = number | string;
 
 const leftPad = (value: string, padding: Padding) => {
-    if (typeof padding === 'number') {
-        return Array(padding + 1).join(' ') + value; // 0 indexing is for computers, this function is for people.
-    }
-    if (typeof padding === 'string') {
-        return padding + value;
-    }
-    throw new Error(`Expected number or string, got '${padding}'.`);
-}
+  switch (typeof padding) {
+    case "number":
+      return Array(padding + 1).join(" ") + value; // 0 indexing is for computers, this function is for people.
+    case "string":
+      return padding + value;
+    default:
+      throw new Error(`Expected number or string, got '${padding}'.`);
+  }
+};
 
-const marioMsg = 'It is I, Mario!';
+const marioMsg = "It is I, Mario!";
 console.log(leftPad(marioMsg, 4));
-console.log(leftPad(marioMsg, "****"));
-console.log(leftPad(marioMsg, true));
\ No newline at end of file
+console.log(leftPad(marioMsg, "*** "));
+// console.log(leftPad(marioMsg, true));
id='n159' href='#n159'>159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209