definitelytyped.github.io icon indicating copy to clipboard operation
definitelytyped.github.io copied to clipboard

Separate internal/external definitions?

Open altano opened this issue 11 years ago • 1 comments

Hello,

knockout.d.ts defines both an ambient internal module as well as an ambient external module. This sucks because your entire solution will then assume that "ko" is a global variable, even if you intent to use Knockout as a CommonJS package via NPM rather than inject it as a script tag.

Would you be okay with my splitting knockout.d.ts into two separate files? The proposal is to change:

knockout.d.ts:

// <Common definitions here>
declare module "knockout" {
    export = ko;
}
declare var ko: KnockoutStatic;

to:

knockout.internal-module.d.ts:

// <Common definitions here>
declare var ko: KnockoutStatic;

and knockout.external-module.d.ts:

// <Common definitions here>
declare module "knockout" {
    var ko: KnockoutStatic;
    export = ko;
}

Thoughts?

altano avatar Dec 31 '14 07:12 altano

Optionally we can leave knockout.d.ts alone and just create knockout-external.d.ts or something.

altano avatar Dec 31 '14 07:12 altano