【问题标题】:how to properly create and import node modules in typescript如何在打字稿中正确创建和导入节点模块
【发布时间】:2015-03-07 06:36:14
【问题描述】:

如何在打字稿中创建节点模块以导入其他打字稿文件?我已经搜索和搜索,但找不到正确的方法。

我想创建一个 typescript 模块,它可以导出一些我可以使用 require 导入到我的 app.ts 中的函数。我正在使用'typescript-require'。这是我正在做的事情(简化):

app.ts

require('typescript-require');
import config = require('./config');

console.log(config.GetDefaultConfiguration());

config.ts

module config {
    var defaultConfig = "default configuration";
    export function GetDefaultConfiguration() {
        return defaultConfig;
    }
}

config.d.ts

declare module config {

}

但我得到“TypeError: Object # has no method 'GetDefaultConfiguration'”。

我错过了什么?

【问题讨论】:

  • 我知道这是一个相当老的问题,但对于其他偶然发现它的人(就像我上周所做的那样),您可能会发现这个 typescript 样板项目很有帮助:github.com/bitjson/typescript-starter

标签: node.js module typescript


【解决方案1】:

我正在使用'typescript-require'

不要使用它。只需从 TSC 编译为 JS,然后运行 ​​JS。

我得到“TypeError: Object # has no method 'GetDefaultConfiguration'”。

你需要从exportconfig.ts:

var defaultConfig = "default configuration";
export function GetDefaultConfiguration() {
     return defaultConfig;
}

注意:不要将内部模块与外部模块一起使用。如果你不清楚区别。看这个:https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1

【讨论】:

  • 谢谢巴萨拉特。听起来很奇怪,但我之前尝试过并得到了编译错误。我正在使用 Visual Studio 的 node.js 工具在 VS2013 中构建我的应用程序,并且构建系统非常不稳定。我做了一个干净的构建,并且根据您的建议进行更改,它现在可以工作了。
  • 我使用 grunt github.com/TypeStrong/grunt-ts 只是因为 TypeScript 的 Visual Studio 编译管道不是最理想的。请注意,TypeScript 团队本身使用 jake(不是 msbuild)来管理其编译
  • 感谢您的指点。我来看看 grunt 和 jake。
猜你喜欢
  • 2022-01-14
  • 2017-02-21
  • 2021-12-25
  • 2021-08-20
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 2022-08-18
  • 2013-02-25
相关资源
最近更新 更多