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
|
=== tests/cases/conformance/types/typeAliases/typeAliasesForObjectTypes.ts ===
type T1 = { x: string }
>T1 : { x: string; }
>x : string
// 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 }
>y : string
class C1 implements T1 {
>C1 : C1
x: string;
>x : string
}
// An interface can have multiple merged declarations, but a type alias for an object type literal cannot.
type T2 = { x: string }
>T2 : { x: string; }
>x : string
type T2 = { y: number }
>T2 : { y: number; }
>y : number
// An interface can have type parameters, but a type alias for an object type literal cannot.
type T3<T> = { x: T }
>T3 : T3<T>
>x : T
|