Skip to content

Instantly share code, notes, and snippets.

@rcarton
Created November 27, 2019 15:51
Show Gist options
  • Save rcarton/6a3c4005787b71e8ba3f93bea9aa5b06 to your computer and use it in GitHub Desktop.
Save rcarton/6a3c4005787b71e8ba3f93bea9aa5b06 to your computer and use it in GitHub Desktop.
Enums
enum E1 {
K1 = "v1",
K2 = "v2",
K3 = "v3"
}
enum E2 {
K1 = "v1",
K2 = "v2",
K4 = "v4"
}
type E3 = "v1" | "v2" | "v3";
type E4 = "v1" | "v2";
const enum E5 {
K1 = "v1",
K2 = "v2",
K3 = "v3"
}
// For each: Is it valid? If yes, what's the value?
// A
const var1: E1 = E2.K1;
// B
const var2: E3 = E1.K1;
// C
const var3: E1 = "v1";
// D
const var4: E1 = E1["K1"];
// E
const var5: E5 = E5["K1"];
// F
const var6: E5 = E5["boop"];
// G
const var7: E1 = E1["boop"];
// H
function convertE3FromE1(var1: E1): E3 {
const var2: E3 = var1;
return var2;
}
// I
function convertE4FromE1(var1: E1): E4 {
const var2: E4 = var1;
return var2;
}
// J
function convertE1FromE3(var1: E3): E1 {
const var2: E1 = var1;
return var2;
}
// K
function convertE1FromString(var1: string): E1 {
const var2: E1 = E1[var1];
return var2;
}
// L
function convertE5FromString(var1: string): E5 {
const var2: E5 = E5[var1];
return var2;
}
function convertE1FromSomething(var1: keyof typeof E1): E1 {
const var2: E1 = E1[var1];
return var2;
}
// M
const var8: E1 = convertE1FromSomething("K1");
// N
const var9: E1 = convertE1FromSomething(E2.K1);
// O
const var10: E1 = convertE1FromSomething(E2[E2.K1]);
// P
const var11: E1 = convertE1FromSomething(E5[E5.K1]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment