2017-11-02 17 views
0

私はこの単純なコード持って活字体で活字体パブリック関数

namespace Customer { 
    function onOpen() { 
    } 
} 

それが生成する:剣道はJSは(onOpenに注意してください)。このように見える必要があるonOpenを使用するためには

var Customer; 
(function (Customer) { 
    function onOpen() { 
    } 
})(Customer || (Customer = {})); 

は、 。これは可能です?:

var Customer; 
(function (Customer) { 
    Customer.onOpen = function() { 
    } 
})(Customer || (Customer = {})); 
+0

あなたはKendoUIと、実行時にエラーを取得していますか?もしそうなら、それを追加できますか?そのような宣言にあまり差がないので、それが当てはまる場合は私を驚かせるだろう。おそらく、メソッドではなく関数であるプロパティを設定することができます。そのための答えを書くことができます。しかし、コンソールエラーを追加すると便利です。 –

+0

実際にコメントを無視して、@ MinusFourは正しくなっています。あなたの関数は公開/エクスポートされていません。 –

答えて

3

をあなたが公開されたプロパティをエクスポートする必要があり、関数は第一級オブジェクトなので、あなたはtypescriptですを書くことができますこのようなコード:

namespace Customer { 
    export const onOpen =() => {} 
} 

またはその代わりに、ラムダのちょうど正常な機能を持つ

namespace Customer { 
    export const onOpen = function() {} 
} 

またはこの代わりに、機能部材の機能を指しプロパティが生成されます

namespace Customer { 
    export function onOpen() { } 
} 

動作します - 実際に、本質的に同じことを。

Javascriptの出力:

var Customer; 
(function (Customer) { 
    Customer.onOpen = function() { }; 
})(Customer || (Customer = {})); 
5

exportを追加します。

namespace Customer { 
    export function onOpen() { 
    } 
} 

が生成されます

var Customer; 
(function (Customer) { 
    function onOpen() { 
    } 
    Customer.onOpen = onOpen; 
})(Customer || (Customer = {}));