Typescript выдаёт мне ошибки с переменными, а также компилирует код, о котором javascript не знает - PullRequest
0 голосов
/ 22 апреля 2020

Я использую машинопись и не могу запустить свой код. что-то, что было бы чрезвычайно легко сделать с помощью javascript, заставило меня бегать вокруг очень многих кругов.

Я использую API YouTube и обращаюсь к ним через тег скрипта. код работает просто отлично, это javascript, но машинописный код не позволит мне скомпилировать код, потому что он говорит, что существует неопределенная переменная. 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');

И если этого не достаточно, c достаточно, даже если я удалю этот API YouTube и попробую чтобы создать свою собственную систему, он даже не позволяет мне использовать vue, потому что когда я импортирую его, он отправляет это в мой файл JS:


exports.__esModule = true;
var vue_1 = require("vue");

Я никогда не слышал об экспорте. в javascript, и, видимо, ни один не имеет javascript! вот почему я получаю эту ошибку, даже если я решу использовать только vue:

Uncaught ReferenceError: exports is not defined
    at app.js:2

Предполагается, что Typescript сэкономит мне время, но в этот момент я, вероятно, вместо этого закончу свой проект просто начать его.

1 Ответ

1 голос
/ 22 апреля 2020

Проблема в том, что у машинописи нет доступа к типам для vue. Это потому, что вы импортируете его с тегом script (??), который не является типичным способом веб-разработки.

Скорее всего, вам следует настроить Webpack и т. П., Или, если вы не хотите тратить время на изучение того, как его настроить, используйте инструмент с нулевой конфигурацией, например Vue CLI .

Если вы не хотите этого делать, вы можете попробовать использовать npm install vue внутри каталога вашего проекта машинописного текста, но убедитесь, что это та же версия vue, которая Вы импортируете через свой скрипт скрипт. Удачи!

...