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 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
=== tests/cases/conformance/types/never/neverTypeErrors2.ts ===
function f1() {
>f1 : () => void
let x: never;
>x : never
x = 1;
>x = 1 : 1
>x : never
>1 : 1
x = "abc";
>x = "abc" : "abc"
>x : never
>"abc" : "abc"
x = false;
>x = false : false
>x : never
>false : false
x = undefined;
>x = undefined : undefined
>x : never
>undefined : undefined
x = null;
>x = null : null
>x : never
>null : null
x = {};
>x = {} : {}
>x : never
>{} : {}
x();
>x() : any
>x : never
}
function f2(): never {
>f2 : () => never
return;
}
function f3(): never {
>f3 : () => never
return 1;
>1 : 1
}
function f4(): never {
>f4 : () => never
}
for (const n of f4()) {}
>n : any
>f4() : never
>f4 : () => never
for (const n in f4()) {}
>n : string
>f4() : never
>f4 : () => never
function f5() {
>f5 : () => void
let x: never[] = []; // Ok
>x : never[]
>[] : never[]
}
// Repro from #46032
interface A {
foo: "a";
>foo : "a"
}
interface B {
foo: "b";
>foo : "b"
}
type Union = A & B;
>Union : never
function func(): { value: Union[] } {
>func : () => { value: Union[];}
>value : never[]
return {
>{ value: [], } : { value: never[]; }
value: [],
>value : never[]
>[] : never[]
};
}
|