我正在使用打字稿,但是我无法运行我的代码。用javascript制作起来非常容易的东西,让我到处都是那么多圈子。
我正在使用youtube API,并通过脚本标签进行引用。该代码在javascript上正常工作,但是typescript不会让我编译该代码,因为它说存在一个未定义的变量。index.html
<script src="/liveRoom/src/framework/vue.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script src="https://www.youtube.com/iframe_api"></script>
<script src="/liveRoom/src/app.js"></script>
app.js
import Vue from 'vue';
const socket : any = io();
function onYoutubeIFrameAPIReady() : void {
let player : object = new YT.Player('player', { //YT is undefined apparently
width: '640',
height: '390',
videoID: 'null',
events: {
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerStateChange() {
}
socket.on('videoID', function (videoID : string) : void {
console.log('the id is: ' + videoID);
var app = new Vue({
el: '#vID',
data: {
vID: videoID
}
});
});
console.log('asas');
如果这还不够混乱,即使我删除了这个youtube API,并尝试创建自己的系统,它甚至都不会让我使用vue,因为当我将其导入时,它将把它发送到我的JS文件中:
exports.__esModule = true;
var vue_1 = require("vue");
我从未听说过出口。在javascript中,显然没有javascript!这就是为什么即使我决定仅使用vue也会收到此错误的原因:
Uncaught ReferenceError: exports is not defined
at app.js:2
打字稿是为了节省我的时间,但是到那时我可能会完成我的项目,而不仅仅是开始它。
如果您不想这样做,可以尝试在打字稿项目目录的内部使用npm install vue
,但请确保它与您通过脚本标签导入的vue版本相同。祝你好运!