在javascript中,使用requireJS,我如何;要求;typescript对象?
在我的javascript文件中,我有:在javascript中,使用requireJS,我如何;要求;typescript对象?,javascript,requirejs,typescript,Javascript,Requirejs,Typescript,在我的javascript文件中,我有: require([“菜单/主菜单]),功能(主菜单){ 其中main-menu.ts是从main-menu.javascript/requireJS构建的。javascript/requireJS希望我在main-menu中构建一个define,然后返回。但是typescript不会这样做 我怎样才能做到这一点 更新:例如,以下内容告诉我导出关键字不正确: ///<reference path='../../libs/ExtJS-4.2.0.d.
require([“菜单/主菜单]),功能(主菜单){
其中main-menu.ts是从main-menu.javascript/requireJS构建的。javascript/requireJS希望我在main-menu中构建一个define,然后返回。但是typescript不会这样做
我怎样才能做到这一点
更新:例如,以下内容告诉我导出关键字不正确:
///<reference path='../../libs/ExtJS-4.2.0.d.ts' />
///<reference path='../../libs/require.d.ts' />
import fdm = require("./file-definitions");
require(["../../scripts/ribbon"], function () {
export module Menu {
export class MainMenu {
}
}
///
///
导入fdm=需要(“./文件定义”);
需要([“../../scripts/ribbon”],函数(){
导出模块菜单{
导出类主菜单{
}
}
要使用回调执行手动require(例如,对于延迟加载),您可以使用DefiniteTyped:中的RequireJS类型脚本定义。如果我正确理解您的问题,您希望使用RequireJS访问JavaScript中的主菜单
,那么您的JavaScript应该如下所示:
require([“路径/目标/主菜单”],函数(主菜单){
main menu.doSomething();
});
现在,假设您使用的是TypeScript0.9.1
或更高版本,您可以为模块的导出值指定一个值。因此,您可以像这样编写MainMenu.ts文件:
class MainMenu {
doSomething(): void {
}
}
export = MainMenu;
编辑:您在
函数
中使用的export语句是不允许的。如果您的代码依赖于包含的功能区脚本,我建议您还需要它和import语句。因此:
import ribbon = require("../../scripts/ribbon");
现在,如果这是一个外部脚本,而您自己没有用TypeScript编写它,则需要告诉编译器此模块存在。在声明文件中添加以下内容:
declare module "../../scripts/ribbon" {};
声明文件是一个扩展名为*.d.ts
的TypeScript文件。它只包含声明,不包含实现。您可以将其与C头文件进行比较。例如,您可以下载jQuery的声明文件。这将为您提供jQuery的TypeScript编译器支持,而实际上不需要jQuery的TypeScript版本询问
对于功能区
文件,这里也可以使用相同的原则。如果您还没有声明文件,只需向项目中添加一个声明文件,例如:declarations.d.ts
。如果您使用Visual Studio作为编辑器,通常TypeScript插件会自动拾取此声明文件。您可以检查如果上面功能区的import语句没有引发错误,则可以正确拾取ile。如果这不起作用,只需在main菜单中添加引用语句即可。ts
:
///<reference path='../../libs/declarations.d.ts' />
///
前提是您已在与已引用的其他声明文件相同的库下创建了declarations.d.ts文件。如何设置手动require?我尝试了require(…),但找不到有效的方法。与您在javascriptI中所做的完全一样,我尝试过,但仍然不起作用(请参阅上面列出了我的特定代码的更新)。还有什么其他的吗?谢谢-daveI尝试了,但仍然不起作用(请参阅列出了我的特定代码的更新)。还有什么其他的吗?谢谢-daveI在“导出模块菜单”中的导出仍然出错。我怎么能避免呢?谢谢-Davey你用的是什么版本的TypeScript?我用的是我认为最新的版本0.9.1.1。我用的是我认为最新的版本0.9.1.1。“导入”是外部模块。一旦你用了它,文件应该被编译成一个外部(即RequireJS或CommonJS)模块。“模块”用于内部模块。我认为您不能从外部模块导出内部模块。此外,您需要使用“export=”RequireJS模块语法,因为TypeScript默认为CommonJS样式的模块。换句话说,类似于:import fdm=require(“./file definitions”);import ribbon=require(../../scripts/ribbon));类MainMenu{…}export=MainMenu;