我有一个具有不同页面的应用程序,并且大致每个页面都有它自己的 js(由 typescript 编译器生成)。每个页面的 document.ready 方法都有一些共享属性,我希望将共享函数/属性放入一个基本的打字稿类。
所以它应该看起来像
class PageX extends BasePage
{
onLoad => which should act like document.ready
}
可以这样做吗?我不确定这是否可能?
我有一个具有不同页面的应用程序,并且大致每个页面都有它自己的 js(由 typescript 编译器生成)。每个页面的 document.ready 方法都有一些共享属性,我希望将共享函数/属性放入一个基本的打字稿类。
所以它应该看起来像
class PageX extends BasePage
{
onLoad => which should act like document.ready
}
可以这样做吗?我不确定这是否可能?
如果您希望在每个页面中都包含基本功能,那么您需要在每个页面中包含基本脚本。派生类不会将父功能复制到子功能中。
您可以在包含常见行为和属性的 .ts 文件中拥有一个 PageBase 类,然后从该类派生每个页面特定行为的类。如下所示:
// Base.ts
class PageBase {
commonProperty: any;
constructor(doc:HTMLDocument){
doc.onload = function(){
alert('Common code here');
}
}
}
上面的编译输出(base.js)将通过每个页面上的脚本标记包含,然后是每个页面生成的脚本,例如...
// pageX.ts
/// <reference path="Base.ts"/>
class PageX extends PageBase {
constructor(){
super(window.document);
// Rest of my code here...
}
}
这听起来像是你所追求的吗?
我认为逻辑不属于一个类。
但是如果你在 .ts 文件的顶部声明一个函数 var 并从你的外部 doc.ready 中调用它,你可以在类实例中监听该函数的变化。
看