在节点,我可以通过设置exports
对象的属性定义像这样的模块:是否可以在打字稿中使用nodejs样式模块?
module.js
exports.fun = function (val) {
console.log(val);
};
和要求它使用在var module = require('module')
和使用module.fun()
功能。
是否有可能定义模块中的打字稿这样的:
module.ts
exports.fun = function (val :string) {
console.log(val);
};
,然后使用节点的语法,比如导入模块中的一些其他的文件,所以import module = require('module.ts')
它编译为nodejs,但是,如果现在我在某些.ts
文件中使用module.fun()
,如果参数与module.ts文件中指定的类型不匹配,它应该给我一个错误。
我该如何在手稿中做到这一点?
Typescript只是编译为JavaScript。它不会像模块那样添加任何功能,因为它不是库本身。您需要查看一个AMD库以允许使用类似的语法(https://github.com/amdjs/amdjs-api/wiki/AMD) – WiredPrairie
以下是一个视频演示:http://www.youtube .com/watch?v = KDrWLMUY0R0&hd = 1&t = 7m20s – basarat
@basarat我确实遇到过那个视频。我在说,在nodejs模块中,我将属性赋给'exports'.However,如果我在'.ts'文件中写'exports.num = 10',我得到'错误TS2071:无法解析外部模块' '。/ myModule'''和'错误TS2072:模块不能被别名为非模块类型。'因此,是否有可能使用JS语法,因为有效的JS应该是有效的TS? – Jatin