@@ -4,13 +4,11 @@ import unified = require('unified')
4
4
import is = require( 'unist-util-is' )
5
5
import convert = require( 'unist-util-is/convert' )
6
6
7
- /*=== setup === */
7
+ /* Setup. */
8
8
interface Element extends Parent {
9
9
type : 'element'
10
10
tagName : string
11
- properties : {
12
- [ key : string ] : unknown
13
- }
11
+ properties : Record < string , unknown >
14
12
content : Node
15
13
children : Node [ ]
16
14
}
@@ -38,32 +36,32 @@ const isHeading = (node: unknown): node is Heading =>
38
36
const isElement = ( node : unknown ) : node is Element =>
39
37
typeof node === 'object' && node !== null && ( node as Node ) . type === 'element'
40
38
41
- /*=== types cannot be narrowed without predicate === */
39
+ /* Types cannot be narrowed without predicate. */
42
40
// $ExpectError
43
41
const maybeHeading : Heading = heading
44
42
// $ExpectError
45
43
const maybeElement : Element = element
46
44
47
- /*=== missing params === */
45
+ /* Missing parameters. */
48
46
// $ExpectError
49
47
is ( )
50
48
// $ExpectError
51
49
is < Node > ( )
52
50
// $ExpectError
53
51
is < Node > ( heading )
54
52
55
- /*=== invalid generic === */
53
+ /* Incorrect generic. */
56
54
// $ExpectError
57
55
is < string > ( heading , 'heading' )
58
56
// $ExpectError
59
57
is < boolean > ( heading , 'heading' )
60
58
// $ExpectError
61
- is < { } > ( heading , 'heading' )
59
+ is < Record < string , unknown > > ( heading , 'heading' )
62
60
63
- /*=== assignable to boolean === */
61
+ /* Should be assignable to boolean. */
64
62
const wasItAHeading : boolean = is < Heading > ( heading , 'heading' )
65
63
66
- /*=== type string test === */
64
+ /* Should support string tests. */
67
65
is < Heading > ( heading , 'heading' )
68
66
is < Heading > ( element , 'heading' )
69
67
// $ExpectError
@@ -86,7 +84,7 @@ if (is<Element>(element, 'element')) {
86
84
const maybeNotElement : Heading = element
87
85
}
88
86
89
- /*=== type predicate function test === */
87
+ /* Should support function tests. */
90
88
is ( heading , isHeading )
91
89
is ( element , isHeading )
92
90
// $ExpectError
@@ -109,7 +107,7 @@ if (is(element, isElement)) {
109
107
const maybeNotElement : Heading = element
110
108
}
111
109
112
- /*=== type object test === */
110
+ /* Should support object tests. */
113
111
is < Heading > ( heading , { type : 'heading' , depth : 2 } )
114
112
is < Heading > ( element , { type : 'heading' , depth : 2 } )
115
113
// $ExpectError
@@ -132,12 +130,13 @@ if (is<Element>(element, {type: 'element', tagName: 'section'})) {
132
130
const maybeNotElement : Heading = element
133
131
}
134
132
135
- /*=== type array of tests === */
133
+ /* Should support array tests. */
136
134
is < Heading | Element | Paragraph > ( heading , [
137
135
'heading' ,
138
136
isElement ,
139
137
{ type : 'ParagraphNode' }
140
138
] )
139
+
141
140
if (
142
141
is < Heading | Element | Paragraph > ( heading , [
143
142
'heading' ,
@@ -150,30 +149,38 @@ if (
150
149
heading // $ExpectType Heading
151
150
break
152
151
}
152
+
153
153
case 'element' : {
154
154
heading // $ExpectType Element
155
155
break
156
156
}
157
+
157
158
case 'ParagraphNode' : {
158
159
heading // $ExpectType Paragraph
159
160
break
160
161
}
162
+
161
163
// $ExpectError
162
164
case 'dne' : {
163
165
break
164
166
}
167
+
168
+ default : {
169
+ break
170
+ }
165
171
}
166
172
}
167
173
168
- /*=== usable in unified transform === */
174
+ /* Should support being used in a unified transform. */
169
175
unified ( ) . use ( ( ) => ( tree ) => {
170
176
if ( is < Heading > ( tree , 'heading' ) ) {
171
- // do something
177
+ // Do something
172
178
}
179
+
173
180
return tree
174
181
} )
175
182
176
- /*=== convert === */
183
+ /* Should support ` convert`. */
177
184
convert < Heading > ( 'heading' )
178
185
// $ExpectError
179
186
convert < Heading > ( 'element' )
0 commit comments