TypeScript/tests/baselines/reference/returnStatements.types

81 lines
1.4 KiB
Plaintext
Raw Normal View History

2014-08-15 23:33:16 +02:00
=== tests/cases/conformance/statements/returnStatements/returnStatements.ts ===
// all the following should be valid
function fn1(): number { return 1; }
>fn1 : () => number
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
function fn2(): string { return ''; }
>fn2 : () => string
2015-04-13 21:36:11 +02:00
>'' : string
2014-08-15 23:33:16 +02:00
function fn3(): void { return undefined; }
>fn3 : () => void
>undefined : undefined
2014-08-15 23:33:16 +02:00
function fn4(): void { return; }
>fn4 : () => void
2014-08-15 23:33:16 +02:00
function fn5(): boolean { return true; }
>fn5 : () => boolean
2015-04-13 21:36:11 +02:00
>true : boolean
2014-08-15 23:33:16 +02:00
function fn6(): Date { return new Date(12); }
>fn6 : () => Date
>Date : Date
2014-08-15 23:33:16 +02:00
>new Date(12) : Date
>Date : DateConstructor
2015-04-13 21:36:11 +02:00
>12 : number
2014-08-15 23:33:16 +02:00
function fn7(): any { return null; }
>fn7 : () => any
2015-04-13 21:36:11 +02:00
>null : null
2014-08-15 23:33:16 +02:00
function fn8(): any { return; } // OK, eq. to 'return undefined'
>fn8 : () => any
2014-08-15 23:33:16 +02:00
interface I { id: number }
>I : I
>id : number
2014-08-15 23:33:16 +02:00
class C implements I {
>C : C
>I : I
2014-08-15 23:33:16 +02:00
id: number;
>id : number
2014-08-15 23:33:16 +02:00
dispose() {}
>dispose : () => void
2014-08-15 23:33:16 +02:00
}
class D extends C {
>D : D
>C : C
2014-08-15 23:33:16 +02:00
name: string;
>name : string
2014-08-15 23:33:16 +02:00
}
function fn10(): I { return { id: 12 }; }
>fn10 : () => I
>I : I
2014-08-15 23:33:16 +02:00
>{ id: 12 } : { id: number; }
>id : number
2015-04-13 21:36:11 +02:00
>12 : number
2014-08-15 23:33:16 +02:00
function fn11(): I { return new C(); }
>fn11 : () => I
>I : I
2014-08-15 23:33:16 +02:00
>new C() : C
>C : typeof C
2014-08-15 23:33:16 +02:00
function fn12(): C { return new D(); }
>fn12 : () => C
>C : C
2014-08-15 23:33:16 +02:00
>new D() : D
>D : typeof D
2014-08-15 23:33:16 +02:00
function fn13(): C { return null; }
>fn13 : () => C
>C : C
2015-04-13 21:36:11 +02:00
>null : null
2014-08-15 23:33:16 +02:00