node.js - TypeScript ES6 命名空间

标签 node.js typescript ecmascript-6

我有一个 Node.js 项目,最近从 ECMAScript 6 兼容的 JavaScript 转换为 TypeScript。我仍然不完全熟悉 TypeScript 和 ES6 如何交互,特别是在命名空间和类型方面。

我的项目中有一个名为 sql 的子文件夹,顾名思义,它导出许多函数来与项目的 MySQL 数据库交互。我想在 Sql.Models 命名空间中组织我的数据库模型类型,以便可以引用它们,例如Sql.Models.User。我希望我的模型在 sql 文件夹内的一个或多个 .d.ts 文件中声明,但我不知道如何正确组织它,以便可以在其他地方引用这些类型。我显然不能 requireimport .d.ts 文件;这不是有效的 TypeScript 操作。如何在另一个与 ES6 兼容的 TypeScript 模块中使用 .d.ts 文件中声明的类型 Sql.Models.User

最佳答案

How can I use the type Sql.Models.User declared in a .d.ts file in another ES6-compatible TypeScript module?

以下非常简单的设置有效。

root
  sql
    models.d.ts
  index.ts
  tsconfig.json 

model.d.ts 文件声明一个命名空间和一个类型。如图所示,index.ts 文件可以为该命名空间添加别名和/或直接访问它。

enter image description here

以上使用的是 TypeScript 版本 2.2.1。

关于node.js - TypeScript ES6 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603525/

相关文章:

node.js - 错误 TS2305 : Module '"tls "' has no exported member ' TLSSocketOptions'

javascript - Angular 5 : Passing an array from child to parent component

javascript - 在哪里可以找到 Traceur(ES6 转换器)运行时?

javascript async/await unhandledRejection 未触发

javascript - Nodejs 确保 API 登录仅发生一次

javascript - 在 typescript 中添加十进制值

javascript - 如何在 React-Router 2.5 中创建动态链接属性

javascript - ES6 模板给出语法错误

node.js - 如何从 Passport.js 授权成功回调进行重定向?

node.js - 在 Ubuntu 12.04 上使用大量 CPU 的 grunt watch