We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e50adc0 commit 6d28595Copy full SHA for 6d28595
tests/cases/compiler/typePredicateStructuralMatch.ts
@@ -0,0 +1,26 @@
1
+// Repro from #12235
2
+
3
+getResults1([]);
4
+getResults1({data: []});
5
6
+getResults2([]);
7
+getResults2({data: []});
8
9
+type Result = { value: string };
10
+type Results = Result[];
11
12
+function isResponseInData<T>(value: T | { data: T}): value is { data: T } {
13
+ return value.hasOwnProperty('data');
14
+}
15
16
+function getResults1(value: Results | { data: Results }): Results {
17
+ return isResponseInData(value) ? value.data : value;
18
19
20
+function isPlainResponse<T>(value: T | { data: T}): value is T {
21
+ return !value.hasOwnProperty('data');
22
23
24
+function getResults2(value: Results | { data: Results }): Results {
25
+ return isPlainResponse(value) ? value : value.data;
26
0 commit comments