File: typeAliasesForObjectTypes.symbols

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 (35 lines) | stat: -rw-r--r-- 1,562 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
24
25
26
27
28
29
30
31
32
33
34
35
=== tests/cases/conformance/types/typeAliases/typeAliasesForObjectTypes.ts ===
type T1 = { x: string }
>T1 : Symbol(T1, Decl(typeAliasesForObjectTypes.ts, 0, 0))
>x : Symbol(x, Decl(typeAliasesForObjectTypes.ts, 0, 11))

// An interface can be named in an extends or implements clause, but a type alias for an object type literal cannot.
interface I1 extends T1 { y: string }
>I1 : Symbol(I1, Decl(typeAliasesForObjectTypes.ts, 0, 23))
>T1 : Symbol(T1, Decl(typeAliasesForObjectTypes.ts, 0, 0))
>y : Symbol(I1.y, Decl(typeAliasesForObjectTypes.ts, 3, 25))

class C1 implements T1 {
>C1 : Symbol(C1, Decl(typeAliasesForObjectTypes.ts, 3, 37))
>T1 : Symbol(T1, Decl(typeAliasesForObjectTypes.ts, 0, 0))

    x: string;
>x : Symbol(C1.x, Decl(typeAliasesForObjectTypes.ts, 4, 24))
}

// An interface can have multiple merged declarations, but a type alias for an object type literal cannot.
type T2 = { x: string }
>T2 : Symbol(T2, Decl(typeAliasesForObjectTypes.ts, 6, 1))
>x : Symbol(x, Decl(typeAliasesForObjectTypes.ts, 9, 11))

type T2 = { y: number }
>T2 : Symbol(T2, Decl(typeAliasesForObjectTypes.ts, 9, 23))
>y : Symbol(y, Decl(typeAliasesForObjectTypes.ts, 10, 11))

// An interface can have type parameters, but a type alias for an object type literal cannot.
type T3<T> = { x: T }
>T3 : Symbol(T3, Decl(typeAliasesForObjectTypes.ts, 10, 23))
>T : Symbol(T, Decl(typeAliasesForObjectTypes.ts, 13, 8))
>x : Symbol(x, Decl(typeAliasesForObjectTypes.ts, 13, 14))
>T : Symbol(T, Decl(typeAliasesForObjectTypes.ts, 13, 8))