forked from microsoft/TypeScript
-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathenumMemberReduction.js
More file actions
90 lines (80 loc) · 2.12 KB
/
enumMemberReduction.js
File metadata and controls
90 lines (80 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//// [enumMemberReduction.ts]
enum MyEnum {
A,
B,
C,
}
enum MyStringEnum {
A = "a",
B = "b",
C = "c",
}
enum MyStringEnumWithEmpty {
A = "",
B = "b",
C = "c",
}
export function fn(optionalEnum: MyEnum | undefined) {
return optionalEnum ?? MyEnum.A;
}
export function fn2(optionalEnum: MyEnum | undefined) {
return optionalEnum || MyEnum.B;
}
export function fn3(optionalEnum?: MyEnum) {
return optionalEnum ?? MyEnum.A;
}
export function fn4(optionalEnum?: MyEnum) {
return optionalEnum || MyEnum.B;
}
export function fn5(optionalEnum?: MyStringEnum) {
return optionalEnum || MyStringEnum.B;
}
export function fn6(optionalEnum?: MyStringEnumWithEmpty) {
return optionalEnum || MyStringEnumWithEmpty.B;
}
//// [enumMemberReduction.js]
"use strict";
exports.__esModule = true;
exports.fn6 = exports.fn5 = exports.fn4 = exports.fn3 = exports.fn2 = exports.fn = void 0;
var MyEnum;
(function (MyEnum) {
MyEnum[MyEnum["A"] = 0] = "A";
MyEnum[MyEnum["B"] = 1] = "B";
MyEnum[MyEnum["C"] = 2] = "C";
})(MyEnum || (MyEnum = {}));
var MyStringEnum;
(function (MyStringEnum) {
MyStringEnum["A"] = "a";
MyStringEnum["B"] = "b";
MyStringEnum["C"] = "c";
})(MyStringEnum || (MyStringEnum = {}));
var MyStringEnumWithEmpty;
(function (MyStringEnumWithEmpty) {
MyStringEnumWithEmpty["A"] = "";
MyStringEnumWithEmpty["B"] = "b";
MyStringEnumWithEmpty["C"] = "c";
})(MyStringEnumWithEmpty || (MyStringEnumWithEmpty = {}));
function fn(optionalEnum) {
return optionalEnum !== null && optionalEnum !== void 0 ? optionalEnum : MyEnum.A;
}
exports.fn = fn;
function fn2(optionalEnum) {
return optionalEnum || MyEnum.B;
}
exports.fn2 = fn2;
function fn3(optionalEnum) {
return optionalEnum !== null && optionalEnum !== void 0 ? optionalEnum : MyEnum.A;
}
exports.fn3 = fn3;
function fn4(optionalEnum) {
return optionalEnum || MyEnum.B;
}
exports.fn4 = fn4;
function fn5(optionalEnum) {
return optionalEnum || MyStringEnum.B;
}
exports.fn5 = fn5;
function fn6(optionalEnum) {
return optionalEnum || MyStringEnumWithEmpty.B;
}
exports.fn6 = fn6;