File: assignmentGenericLookupTypeNarrowing.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (23 lines) | stat: -rw-r--r-- 583 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//// [assignmentGenericLookupTypeNarrowing.ts]
// Repro from #26130

let mappedObject: {[K in "foo"]: null | {x: string}} = {foo: {x: "hello"}};
declare function foo<T>(x: T): null | T;

function bar<K extends "foo">(key: K) {
  const element = foo(mappedObject[key]);
  if (element == null)
    return;
  const x = element.x;
}


//// [assignmentGenericLookupTypeNarrowing.js]
// Repro from #26130
var mappedObject = { foo: { x: "hello" } };
function bar(key) {
    var element = foo(mappedObject[key]);
    if (element == null)
        return;
    var x = element.x;
}