File: exportAssignmentOfDeclaredExternalModule.types

package info (click to toggle)
node-typescript 5.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 497,488 kB
  • sloc: javascript: 2,107,274; makefile: 6; sh: 1
file content (38 lines) | stat: -rw-r--r-- 999 bytes parent folder | download
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
36
37
38
//// [tests/cases/compiler/exportAssignmentOfDeclaredExternalModule.ts] ////

=== exportAssignmentOfDeclaredExternalModule_1.ts ===
///<reference path='exportAssignmentOfDeclaredExternalModule_0.ts'/>
import Sammy = require('./exportAssignmentOfDeclaredExternalModule_0');
>Sammy : any

var x = new Sammy(); // error to use as constructor as there is not constructor symbol
>x : any
>new Sammy() : any
>Sammy : any

var y = Sammy(); // error to use interface name as call target
>y : any
>Sammy() : any
>Sammy : any

var z: Sammy; // no error - z is of type interface Sammy from module 'M'
>z : Sammy

var a = new z(); // constructor - no error
>a : any
>new z() : any
>z : Sammy

var b = z(); // call signature - no error
>b : number
>z() : number
>z : Sammy

=== exportAssignmentOfDeclaredExternalModule_0.ts ===
interface Sammy {
    new (): any; // a constructor signature
        (): number; // a 0 arg call signature
    }
export = Sammy;
>Sammy : Sammy