gpt4 book ai didi

node.js - TypeScript 0.8.2 在内部模块中导入 Node.js 模块

转载 作者:搜寻专家 更新时间:2023-10-30 20:36:36 24 4
gpt4 key购买 nike

好的,据我所知,您希望在项目中使用内部模块。好吧,在 TypeScript 0.8.1.1 中有一个解决方法,您可以定义非导出模块(内部)并在其上方添加导入。在 0.8.2 中,这似乎不再起作用了。我在这里看到的唯一选择是完全省略导入语法并使用 Node 模块的标准要求。我不知道这是否是个好主意,但请分享您的意见。我知道使用 import 语法会使模块成为外部(语言规范),但在 0.8.1.1 中并非如此,可能是错误?

在 TypeScript 0.8.1.1 中这有效,但在 0.8.2 中不再有效:

import path = module('path');
import fs = module('fs');
module SomeNamespace.Controller {
export class Index {
...
}
}

我可以在其他内部模块的文件顶部使用引用语法来引用包含上述代码的文件,并且通常调用:

var ctrl = new SomeNamespace.Controller.Index;
ctrl.index();

在 0.8.2 中,这似乎是它对内部模块起作用的唯一方式:

var path = require('path');
var fs = require('fs');
module SomeNamespace.Controller {
export class Index {
...
}
}

是否还有其他可能将内部模块与 Node.js 模块混合使用?上面的 require 用法有什么问题吗(它编译并运行正常......)?

最佳答案

我认为 TypeScript 0.8.2 让我们更接近规范。

语法:

import x = module('SomeModule');

具体是TypeScript语言规范中的一个ExternalModuleReference

将使用以下方式导入内部模块:

///<reference path="SomeModule.ts" />
import x = SomeModule;

但导入内部模块不会在您的 JavaScript 中生成 require 语句。

取自 TypeScript 语言规范 0.8 - 9.2.2 导入声明

导入声明:

import Identifier = ModuleReference ;

模块引用:

ExternalModuleReference
ModuleName

外部模块引用:

module ( StringLiteral )

关于node.js - TypeScript 0.8.2 在内部模块中导入 Node.js 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com