我看到了很多类似的问题,但都与我的问题无关。
我们正在将一些代码更新为打字稿,而且一切都很好。在大多数情况下,它只是从一个位置导出功能,然后导入另一个位置。
这是一些非常简单的代码,仅用于测试我的场景。
//test.ts
declare var x:any;
function test(){
console.log('hello');
}
具有一个使用babelify和tsify运行的gulp任务,并将其转换为html页面中使用的.js文件。
我在ts文件中所做的一切都正常。我可以从其他.ts文件调用测试函数,并且一切正常。
我唯一的问题
现在我想做的事并且似乎无法使它工作的是访问测试功能或HTML页面内部的x,如下所示'
//index.htm
<script src="test.js"></script>
<script>
test(); //error: test:206 Uncaught ReferenceError: test is not defined
</script>
我认为这是一个范围界定问题,因为生成的js文件已关闭,并且想知道使var和function可用于HTML页面的最佳方法是什么。
//sample test.js generated by gulp
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
"use strict";
function testfunc() {
alert('hello');
}
},{}]},{},[1]);
只要我不需要调用该函数或从HTML文件访问var,同样一切正常。
工具 Visual Studio,Gulp,Tsify,Vueify,babelify,Browserify