我有一个ts脚本(test.ts
)这样的东西:
class Foo {
public static bar() {
console.log("test");
}
}
我希望从像这样的普通js(test.html
)中调用它:
<script src="test.js"></script>
<script>
Foo.bar();
</script>
test.html
与test.js
位于同一目录中,该目录由webpack编译和集成。
这可能吗?如果是这样,我该怎么做?
更新
好的,所以我改变了程序:
class Foo {
public bar() {
console.log("test");
}
}
但是,javascript无法找到Foo
类。
答案 0 :(得分:1)
回答你的问题:
test.ts :
class Foo {
public static bar() {
console.log("test");
}
}
window.Foo = Foo;
测试html :中的
<script src="test.js"></script>
<script>
Foo.bar();
</script>
你的打字稿编译器在编译时可能会使用闭包,所以一切都在匿名函数的范围内关闭:
(function(){
...
})()
因此,要从html访问您的函数,您应该将其分配给窗口。
但是如果你做的很简单,那么你真的不需要TypeScript,而是使用vanilla JavaScript。如果需要,您可以使用ES6类。
TypeScript用于更复杂的解决方案。在TypeScript中你应该使用export&amp;在文件之间导入,而不是分配给窗口......