事象
Webpackを利用して、TypeScriptをコンパイル。
その生成物を利用しようとしたら、未定義でエラーになった話。
動かなかったコード
<body>
<div class="ready" onclick="test();"></div>
<script type="text/javascript" src="test.js"></script>
</body>
function test() {
alert("click");
}
typescriptはwebpackを利用して、JavaScriptにコンパイルしています。
testは定義されていないというエラー
えええっと思って調べると、webpackはグローバルスコープをなるべく露出させないみたい。
window.test
=> undefined
なるほど~。
改善したコード
TypeScriptを以下のように改良したらちゃんと動くように。
function test(){
alert("click");
}
//グローバルスコープに露出させる。
window.test = test
window.test
=>
function test() {
alert("click");
}
結構詰まってしまいました。