Javascript 有没有像C“这样的功能;使用;打字稿?
有没有一种方法可以让我更容易在下面的typescript代码中调用我的警报。以下是我的警报代码:Javascript 有没有像C“这样的功能;使用;打字稿?,javascript,typescript,Javascript,Typescript,有没有一种方法可以让我更容易在下面的typescript代码中调用我的警报。以下是我的警报代码: module Admin.Shared.Alerts { export class alerts { static mvcOnFailure(message: string) { dialog.alertWin("Internal Application Error", message); } } } 下面是一个我称之为的小
module Admin.Shared.Alerts {
export class alerts {
static mvcOnFailure(message: string) {
dialog.alertWin("Internal Application Error", message);
}
}
}
下面是一个我称之为的小片段示例:
module Admin.MyAccount.Access {
export function ajaxDone(data: string, textStatus: string, jqXHR: JQueryXHR) {
Admin.Shared.Alerts.alerts.mvcOnFailure("x");
}
}
问题是调用警报的字符串太长了。是否有某种方法可以在C#中执行类似“使用”的操作,而不必指定“Admin.Shared.Alerts” 当然有。我不推荐它,但您需要的是
with
语句:
module Admin.MyAccount.Access {
export function ajaxDone(data: string, textStatus: string, jqXHR: JQueryXHR) {
with (Admin.Shared.Alerts) {
alerts.mvcOnFailure("x");
}
}
}
注意:我宁愿使用@Richard在评论您的问题时提供的解决方案。在这方面,我有两条建议供您参考。首先,你需要重新考虑你的模块结构。一旦您看到诸如“Common”、“Shared”或“Core”之类的名称空间,它就会告诉您存在问题,因为这些不是描述内部代码可能执行的操作的词。好名字是“信息”、“提醒”、“付款”——你可以马上知道你会在那里找到什么样的东西 因此,建议1是删除“共享”名称空间
module Admin.Alerts {
如果您正在构建一个大型的TypeScript程序,您可能希望遵循CommonJS应用程序中常用的模块模式。您使用简单的模块名称,但将其嵌套在文件夹中:
.\Admin\Alerts.ts
您可以使用
import alerts = module('.\Admin\Alerts.ts');
然后在警报
名称下的代码中使用它
在web应用程序中,您将使用模块加载器(如requires.js)为您处理所有加载,这样就不会有太多额外的工作,并且您将告诉编译器使用标志为您创建代码
tsc --module commonjs Alerts.ts
当然:
var-Alerts=Admin.Shared.Alerts
在旁注中-我在三月份更详细地写到了这里的“常见”命名空间问题:当浏览器已经能够加载JavaScript时,为什么要使用模块加载器?模块加载器只是一个选项。捆绑在浏览器中更为常见——先进行一次大的点击,然后进行缓存。模块加载器允许您在缓存单个脚本的情况下进行较小的点击,而不会影响页面加载。
tsc --module commonjs Alerts.ts