-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Closed
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: Declaration EmitThe issue relates to the emission of d.ts filesThe issue relates to the emission of d.ts files
Milestone
Description
TypeScript Version: 2.9.x
2.8.x works fine. It starts to break with TypeScript 2.9.x. It's not fixed by the latest build (typescript@next).
Search Terms:
import symbolic link lerna
Code
https://github.com/strongloop/loopback-next/blob/master/packages/core/src/keys.ts
keys.ts
import {Application, ControllerClass} from './application';
export const CONTROLLER_CLASS = BindingKey.create<ControllerClass>(
'controller.current.ctor',
);Please note the ControllerClass is a type alias re-exported from another module @loopback/next which is symbolically linked to @loopback/core by lerna.
application.ts
import {Context, Binding, BindingScope, Constructor} from '@loopback/context';
export type ControllerClass = Constructor<any>;Expected behavior:
TypeScript 2.8.x style:
keys.d.ts (emitted by tsc)
const CONTROLLER_CLASS: BindingKey<new (...args: any[]) => any>;Or
import {Constructor} from '@loopback/context';
const CONTROLLER_CLASS: BindingKey<Constructor<any>>;Actual behavior:
const CONTROLLER_CLASS: BindingKey<import("../../context/src/value-promise").Constructor<any>>;Please note the relative link is only valid at development time. Once it's published as a npm module, the import cannot be resolved.
Playground Link:
Related Issues:
makamekm, hugogrochau, yortus, b-admike, shimks and 2 more
Metadata
Metadata
Assignees
Labels
BugA bug in TypeScriptA bug in TypeScriptDomain: Declaration EmitThe issue relates to the emission of d.ts filesThe issue relates to the emission of d.ts files