【发布时间】:2016-09-22 15:21:28
【问题描述】:
我已经使用 ES2015 构建了很多 API 和应用程序,但我还不习惯 TypeScript 的最佳实践,所以也许你可以帮助我。 假设我正在为商店构建 API/SDK。目标是用户包含我的 js 文件并通过 window 对象访问商店及其名称空间,就像使用 angular 和其他库一样。
window.shop.init();
window.shop.cart.get();
window.shop.cart.set();
window.shop.cart.clear();
在 ECMAScript 2015 中,我会编写像 get 和 set 这样的方法,将它们导入我的主文件并扩展 shop 对象,最后是全局对象。
// in my cart.js namespace file
export {get} from './get';
// in my shop.js
import * as cart from './cart';
global.shop = {
cart
}
作为 ES2015 中命名空间的好方法,TypeScript 拥有所有这些模块和命名空间关键字感觉有点不对。
我基本上想在 TS 中达到同样的效果。我尝试了以下类似的方法,但没有成功。
module shop {
export const cart = {...}
}
(<any>window).shop = shop;
或
namespace shop {
// ...
}
(<any>window).shop = shop;
有些教程声称模块会自动附加到全局/窗口对象,但我没有发生这种情况。
我使用的是 TypeScript 1.8.10。非常感谢任何帮助!
【问题讨论】:
标签: javascript module typescript typescript1.8