-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Closed
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issue
Milestone
Description
tsc generates a .d.ts file that it subsequently cannot parse anymore.
Input file: myfile.ts
/// <reference path="./used.d.ts" />
import myUsedId = require("used");
export class foo extends myUsedId.SomeClass {
}Input file: used.d.ts
declare module "used" {
// note: the following does work: export import bar = require("some_used_module");
import bar = require("some_used_module");
export import SomeClass = bar.SomeClass;
}
declare module "some_used_module" {
export class SomeClass {
}
}Typescript command, tsc version 1.0.3.0:
tsc -m commonjs -d -t es5 ./myfile.tsOutput file myfile.d.ts
/// <reference path="used.d.ts" />
import myUsedId = require("used");
export declare class foo extends "some_used_module".SomeClass {
}This output file cannot be used, it generates a compile error: TS1008: Unexpected token; 'type name' expected. It does so on the quoted "some_used_module".SomeClass.
Expected output file myfile.d.ts:
/// <reference path="used.d.ts" />
import myUsedId = require("used");
export declare class foo extends myUsedId .SomeClass {
}A workaround is exporting bar from used.d.ts. However this breaks encapsulation unnecessarily, as ALL of bar is now exposed.
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptFixedA PR has been merged for this issueA PR has been merged for this issue