File: intersectionsAndOptionalProperties.ts

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (28 lines) | stat: -rw-r--r-- 549 bytes parent folder | download | duplicates (4)
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
// @strict: true

declare let x: { a?: number, b: string };
declare let y: { a: null, b: string };
declare let z: { a: null } & { b: string };

x = y;  // Error
x = z;  // Error

// Repro from #36604

interface To {
    field?: number;
    anotherField: string;
}

type From =  { field: null } & Omit<To, 'field'>;

function foo(v: From) {
    let x: To;
    x = v;  // Error
    x.field = v.field; // Error
}

// Repro from #38348

const yy: number[] & [number, ...number[]] = [1];
const xx: [number, ...number[]] = yy;