モジュールを拡張したいとしましょう。同時に、そのプロパティをオーバーライドしたくありません。JavaScript では、次のようにします。
var root = this; // window
(function(exports) {
if ('widget' in exports) return;
function widget() {
//
}
exports.widget = widget;
})(root.library || (root.library = {}));
TypeScript は同じ using を提供しているようですmodule
。ただし、次の方法で使用すると、 でwidget
以前に定義されたプロパティが無差別にオーバーライドされlibrary
ます。
module library {
export function widget() {
//
}
}
class
前者を使用できるようになりましたが、関数内で定義を作成すると、TypeScript は定義のネストについて不平を言います。定義を関数の外に置くと、それはエクスポートされます (たとえば on window
)。これは避けたいことです。
何か案は?