TypeScript/tests/baselines/reference/logicalAssignment4(target=es2021).errors.txt
Kagami Sascha Rosylight f4d0ea6539
Add target: ES2021 (#41239)
* Support `target: es2020`

* use CRLF

* update symbols

Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
2021-03-10 13:31:25 -08:00

58 lines
1.8 KiB
Plaintext

tests/cases/conformance/es2021/logicalAssignment/logicalAssignment4.ts(39,13): error TS2532: Object is possibly 'undefined'.
tests/cases/conformance/es2021/logicalAssignment/logicalAssignment4.ts(45,13): error TS2532: Object is possibly 'undefined'.
==== tests/cases/conformance/es2021/logicalAssignment/logicalAssignment4.ts (2 errors) ====
function foo1(results: number[] | undefined) {
(results ||= []).push(100);
}
function foo2(results: number[] | undefined) {
(results ??= []).push(100);
}
function foo3(results: number[] | undefined) {
results ||= [];
results.push(100);
}
function foo4(results: number[] | undefined) {
results ??= [];
results.push(100);
}
interface ThingWithOriginal {
name: string;
original?: ThingWithOriginal
}
declare const v: number
function doSomethingWithAlias(thing: ThingWithOriginal | undefined, defaultValue: ThingWithOriginal | undefined) {
if (v === 1) {
if (thing &&= thing.original) {
thing.name;
}
}
else if (v === 2) {
if (thing &&= defaultValue) {
thing.name;
defaultValue.name
}
}
else if (v === 3) {
if (thing ||= defaultValue) {
thing.name;
defaultValue.name;
~~~~~~~~~~~~
!!! error TS2532: Object is possibly 'undefined'.
}
}
else {
if (thing ??= defaultValue) {
thing.name;
defaultValue.name;
~~~~~~~~~~~~
!!! error TS2532: Object is possibly 'undefined'.
}
}
}