forked from gajus/eslint-plugin-flowtype
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequireCompoundTypeAlias.js
More file actions
92 lines (92 loc) · 2.5 KB
/
requireCompoundTypeAlias.js
File metadata and controls
92 lines (92 loc) · 2.5 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
91
92
export default {
invalid: [
{
code: 'function foo(bar: "A" | "B") {}',
errors: [{message: 'All union types must be declared with named type alias.'}]
},
{
code: 'const foo: "A" | "B" = "A";',
errors: [{message: 'All union types must be declared with named type alias.'}]
},
{
code: 'type Foo = { bar: "A" | "B" };',
errors: [{message: 'All union types must be declared with named type alias.'}]
},
{
code: 'function foo(bar: { n: number } | { s: string }) {}',
errors: [{message: 'All union types must be declared with named type alias.'}]
},
{
code: 'function foo(bar: { n: number } & { s: string }) {}',
errors: [{message: 'All intersection types must be declared with named type alias.'}]
},
{
code: 'const foo: { n: number } & { s: string } = { n: 0, s: "" };',
errors: [{message: 'All intersection types must be declared with named type alias.'}]
},
{
code: 'type Foo = { bar: { n: number } & { s: string } };',
errors: [{message: 'All intersection types must be declared with named type alias.'}]
},
{
code: 'function foo(bar: { n: number } & { s: string }) {}',
errors: [{message: 'All intersection types must be declared with named type alias.'}]
}
],
misconfigured: [
{
errors: [
{
data: 'sometimes',
dataPath: '[0]',
keyword: 'enum',
message: 'should be equal to one of the allowed values',
params: {
allowedValues: [
'always',
'never'
]
},
parentSchema: {
enum: [
'always',
'never'
],
type: 'string'
},
schema: [
'always',
'never'
],
schemaPath: '#/items/0/enum'
}
],
options: ['sometimes']
}
],
valid: [
{
code: 'type Foo = "A" | "B";'
},
{
code: 'type Bar = "A" | "B"; function foo(bar: Bar) {}'
},
{
code: 'type Foo = { disjoint: "A", n: number } | { disjoint: "B", s: string };'
},
{
code: 'type Foo = { n: number } & { s: string };'
},
{
code: 'type Bar = { n: number } & { s: string }; function foo(bar: Bar) {}'
},
{
code: 'function foo(bar: "A" | "B") {}',
options: ['never']
},
{
code: 'function foo(bar: { n: number } & { s: string }) {}',
options: ['never']
}
]
};