Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript调用typescript代码不会';我不能在爱奥尼亚工作_Javascript_Angular_Typescript_Ionic Framework - Fatal编程技术网

从javascript调用typescript代码不会';我不能在爱奥尼亚工作

从javascript调用typescript代码不会';我不能在爱奥尼亚工作,javascript,angular,typescript,ionic-framework,Javascript,Angular,Typescript,Ionic Framework,我正在尝试从IONIC中的Javascript方法调用typescript方法。但没有调用typescript方法。 我已经在IONIC中创建了一个Cordova插件,它将在Javascript成功或失败方法中返回结果。从success方法中,我想调用typescript方法来导航到爱奥尼亚的另一个页面。请让我知道如何从Javascript调用typescript 代码段: var success= function(){ alert("JS method called");.

我正在尝试从IONIC中的Javascript方法调用typescript方法。但没有调用typescript方法。 我已经在IONIC中创建了一个Cordova插件,它将在Javascript成功或失败方法中返回结果。从success方法中,我想调用typescript方法来导航到爱奥尼亚的另一个页面。请让我知道如何从Javascript调用typescript

代码段:

var success= function(){
    alert("JS method called");.       // alert displayed 
    typescriptMethod();.         // Defined in class of typescript
}

Class MainClass
{
     constructor()
     {
         success();.   // JS method called 
     }
     typescriptmethod()
     {
         alert("typescript method called");.   // alert not displayed
     }
}

谢谢,

您可以从
javascript
code中调用
typescript
code


typescript
代码被编译成
javascript
。您可以调用您的
typescript
代码的等效javascript代码。

您必须了解typescript不是一种独立的编程语言。它位于JavaScript之上,作为一个超集(这意味着一旦编写和编译了TypeScript程序,它本质上就是一个JavaScript程序)。如果您想做到这一点,可以很容易地尝试编写等效的JavaScript代码。如果你去TypeScript游戏场,你可以很快地将你的TS代码转换成JS代码(当然,如果不是太复杂的话)。 无论如何,这里有一点复习,你如何才能达到你的要求:

     var success = function () {
    alert("JS method called");
    typescriptMethod();
};
var MainClass = /** @class */ (function () {
    function MainClass() {
        success();
    }
    MainClass.prototype.typescriptmethod = function () {
        alert("typescript method called");
    };
    return MainClass;
}());
这将导致一个错误,即typescripmethod()未定义,因此可以将其设置为静态(JS代码):

或者使用类实例(JS代码):


希望这能帮到你

你确定这个问题与TypeScript有关吗?一个方法可能无法被调用的原因有很多。一旦编译了TypeScript,它就是JavaScript,所以假设编译成功,那么您需要通过查看已编译的JS来诊断这个问题。您是否已在调试器中仔细查看了代码以查看实际发生的情况?您的示例不能帮助我们重现问题,也不能真正让我们了解发生了什么。您需要先创建MainClass的实例<代码>新建MainClass().typescriptmethod()
var MainClass = /** @class */ (function () {
    function MainClass() {
        success(); // JS method called 
    }
    MainClass.typescriptMethod = function () {
        alert("typescript method called");
    };
    return MainClass;
}());
var success = function () {
    alert("JS method called"); // alert displayed 
    MainClass.typescriptMethod(); // Defined in class of typescript
};
success();
var MainClass = /** @class */ (function () {
    function MainClass() {
        success(this); // JS method called 
    }
    MainClass.prototype.typescriptMethod = function () {
        alert("typescript method called");
    };
    return MainClass;
}());
var success = function (instance) {
    alert("JS method called"); // alert displayed 
    instance.typescriptMethod(); // Defined in class of typescript
};
success(new MainClass());