TypeScript/tests/baselines/reference/typeReferenceDirectives9.js
2016-04-11 21:36:07 -07:00

80 lines
1.5 KiB
TypeScript

//// [tests/cases/compiler/typeReferenceDirectives9.ts] ////
//// [index.d.ts]
interface Lib { x }
//// [main.ts]
export class Cls {
x
}
//// [mod1.ts]
/// <reference types="lib" />
import {Cls} from "./main";
Cls.prototype.foo = function() { return undefined; }
declare module "./main" {
interface Cls {
foo(): Lib;
}
namespace Cls {
function bar(): Lib;
}
}
//// [mod2.ts]
import { Cls } from "./main";
import "./mod1";
export const cls = Cls;
export const foo = new Cls().foo();
export const bar = Cls.bar();
//// [main.js]
"use strict";
var Cls = (function () {
function Cls() {
}
return Cls;
}());
exports.Cls = Cls;
//// [mod1.js]
/// <reference types="lib" />
"use strict";
var main_1 = require("./main");
main_1.Cls.prototype.foo = function () { return undefined; };
//// [mod2.js]
"use strict";
var main_1 = require("./main");
require("./mod1");
exports.cls = main_1.Cls;
exports.foo = new main_1.Cls().foo();
exports.bar = main_1.Cls.bar();
//// [main.d.ts]
export declare class Cls {
x: any;
}
//// [mod1.d.ts]
/// <reference types="lib" />
declare module "./main" {
interface Cls {
foo(): Lib;
}
namespace Cls {
function bar(): Lib;
}
}
export {};
//// [mod2.d.ts]
/// <reference types="lib" />
import { Cls } from "./main";
import "./mod1";
export declare const cls: typeof Cls;
export declare const foo: Lib;
export declare const bar: Lib;