Nativescript super和打字稿

时间:2015-06-04 19:31:23

标签: typescript webstorm super nativescript

我在nativescript项目中包含了所有的typescript源代码,webstorm编译了其中一个,现在我无法运行该应用程序。

我查看了grunt文件中的设置,我已将其匹配。

在timer.ios.ts中,该行看起来像

    return <TimerTargetImpl>super.new();

编译为(在WebStorm中使用typescript 1.4)

    return super.new.call(this);

然而,来自tns create的(ts生成的)代码是

    return _super.new.call(this);

我找不到我的打字稿设置与grunt文件中的打字稿设置的区别。

我无法运行它,因为我得到了

/app/tns_modules/timer/timer.js:17:JS ERROR SyntaxError:意外使用保留字&#39; super&#39;

我可以修复它,但我想了解为什么我会从打字稿中获取不同的代码。

感谢任何帮助。

(更新)

查看导致问题的代码

class TimerTargetImpl extends NSObject {
    static new(): TimerTargetImpl {
        return <TimerTargetImpl>super.new();
    }                        
<snip>

它在静态函数中使用super,因为它是静态的,没有实例,所以没有超级。

似乎这个新功能应该只是

 static new(): TimerTargetImpl {
        return new TimerTargetImpl();
    }                        

1 个答案:

答案 0 :(得分:0)

NativeScript目前正在使用v1.5.0的typescript。我唯一能想到的ES6模式可能会有所不同。建筑的设置文件显示:

“version”:“1.5.0-beta”,     “compilerOptions”:{         “目标”:“es5”,         “module”:“commonjs”,         “声明”:虚假,         “noImplicitAny”:false,         “removeComments”:是的,         “noLib”:是的,         “outDir”:“dist”     },