【问题标题】:Can i use JQuery/Javascript with Ionic instead of Typescript我可以将 JQuery/Javascript 与 Ionic 一起使用而不是 Typescript
【发布时间】:2017-11-06 13:17:36
【问题描述】:

我正在使用 Visual Studio 2017 和 Apache Cordova 开发移动应用程序。 我一直使用 JQuery 和 Javascript 进行编码,但是我从未使用 Typescript 编写过代码。

在搜索网络时,几乎每个人都在使用带有 Ionic 的 Typescript。 (考虑开始受益并使用 Ionic 框架) 如果我使用 JQuery 或 Javascript 而不是带有 Ionic 的 Typescript,是否一样?

或者它建议我学习 Typescript 并开始使用 Ionic?

感谢您的澄清。

这就是我通常使用 JQuery 为 Cordova 编写代码的方式:

function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
    var j = Math.floor(Math.random() * (i + 1));
    var temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}
return array;
}

function beginGame() {

$('#info').hide();

var level = 0;

$('#game_title h2').html('Level 1');
$('#game_question h3').html('What is the most common language?');

$('#game_body').html('');
var gameBody = document.getElementById('game_body');
var columnAnswer, buttonAnswer;

var answers = [['Arabic', ''], ['Spanish', ''], ['English', 'right_answer'], ['Chinese', '']];
var arr = shuffleArray(answers);
console.log(arr);

for (var i = 0; i < arr.length; i++) {
    columnAnswer = document.createElement('div');
    columnAnswer.className = 'col-xs-12';

    buttonAnswer = document.createElement('button');
    buttonAnswer.id = 'answer_button_'+i;
    buttonAnswer.className = 'btn btn-primary btn-sx answer_button ' + arr[i][1];
    buttonAnswer.type = 'button';
    buttonAnswer.innerHTML = arr[i][0];
    //buttonAnswer.setAttribute('onclick', 'onQuoteClick(' + quotes[i].id + ')');
    console.log(buttonAnswer);
    columnAnswer.appendChild(buttonAnswer);

    gameBody.appendChild(columnAnswer);
}

$('.answer_button').click(function () {
    var button_id = $(this).attr('id');
    if ($('#' + button_id).hasClass('right_answer')) {
        //alert('Right Answer');
        $('#info').show();
        fillInformation();
    } else {
        alert('Wrong Answer');
    }
});



}
function fillInformation() {
$('#game_title h2').html('English');
$('#info_image img').attr("src", './images/level_1.png');
$('#info_text h5').html('English Language');
}

【问题讨论】:

  • TypeScript 是 JavaScript 的超集。除非您启用更严格的规则,例如 noImplicitAnystrictNullChecks,否则您可以在 .ts 文件中使用常规 JavaScript。使用 TypeScript 也不会影响您可以使用哪些库(如 jQuery)。

标签: jquery cordova typescript ionic-framework


【解决方案1】:

您应该能够将 JQuery 和 Javascript 与 Ionic 一起使用,但是,您可能会失去 Ionic 提供的 Angular 功能。您也可以在 ts 文件中编写 ES6 javascript。否则,我建议使用 imo 学习难度不大的 Typescript。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    是的,完全值得使用 Typescript 并以标准方式进行。

    与您习惯的主要区别不是 Typescript vs Javascript,而是 vanilla Js vs Angular。

    Angular 是 Ionic 所依赖和扩展的框架。 Typescript 中默认使用 Angular 框架。

    但这对您来说应该不是问题,因为 Typescript 向后兼容 Javascript。 .ts 文件中的任何 vanilla Js 代码都可以正常编译和运行(尽管如果您不遵循最佳实践,您将失去 Typescript 的好处)。

    你也完全可以使用 jquery,就像你习惯的那样。

    【讨论】:

    • 谢谢你让我明白了。我看了一下 typescript 它更接近 Java 代码然后 javascript 对吗?
    • 我很高兴。没错。我强烈建议您训练自己始终使用类型(不使用 any 类型)并逐步指定标志 'noImplicitAny': true 您您的 tsconfig.json,这是 Typescript 编译器的配置。我还有一个固执己见的tslint.json 文件,您可以将download 复制到您的项目中。如果你想了解更多关于为什么值得进入 Typescript,我最近就此事写了一个Medium article
    猜你喜欢
    • 2015-08-21
    • 2018-05-05
    • 2017-11-12
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多