javascript - TypeScript - Attach module/namespaces to window -


i've built lot of apis , applications using es2015, not used best practices in typescript yet, maybe can me. let's building api/sdk shop. goal user includes js file , accesses shop , namespaces via window object, possible angular , other libs well.

window.shop.init(); window.shop.cart.get(); window.shop.cart.set(); window.shop.cart.clear(); 

in ecmascript 2015, write methods get , set, import them in main file , extend shop object , global object.

// in cart.js namespace file export {get} './get';  // in shop.js import * cart './cart';  global.shop = {     cart } 

being approach namespacing in es2015, feels kinda wrong in typescript having module , namespace keywords.

i want achieve same in ts. tried things following, no success.

module shop {     export const cart = {...} }  (<any>window).shop = shop; 

or

namespace shop {     // ... }  (<any>window).shop = shop; 

there tutorials claiming module automatically attached global/window object, did not happen me.

i using typescript 1.8.10. appreciated!

there tutorials claiming module automatically attached global/window object, did not happen me.

maybe because code of namespace in (es6) module instead of in script? differences between scripts , modules detailed here.

the code below makes global variable shop in browser if loaded script, ie tag <script src="shop.js"> (or can concatenate file other javascript files, example uglifyjs).

// file shop.ts namespace shop {     export const cart = { /* ... */ } } 

if code loaded es6 module (ie of webpack, systemjs, requirejs or other), solution valid:

(<any>window).shop = shop; 

Comments

Popular posts from this blog

PySide and Qt Properties: Connecting signals from Python to QML -

c# - DevExpress.Wpf.Grid.InfiniteGridSizeException was unhandled -

scala - 'wrong top statement declaration' when using slick in IntelliJ -