繁体   English   中英

TypeScript ES6命名空间

[英]TypeScript ES6 namespaces

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

我的项目中有一个名为sql的子文件夹,它听起来会导出许多函数来与项目的MySQL数据库进行交互。 我想在Sql.Models命名空间中组织我的数据库模型类型,因此可以引用它们,例如Sql.Models.User 我希望我的模型在sql文件夹中的一个或多个.d.ts文件中声明,但我无法弄清楚如何正确组织它以便可以在其他地方引用这些类型。 我显然不能requireimport .d.ts文件; 这不是一个有效的TypeScript操作。 我如何使用类型Sql.Models.User在声明.d.ts在另一个ES6兼容打字稿模块文件?

如何在另一个兼容ES6的TypeScript模块中使用.d.ts文件中声明的Sql.Models.User类型?

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

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

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

在此输入图像描述

以上是使用TypeScript版本2.2.1。

我通过使用“别名的内部导入”以一种不太漂亮的方式解决了这个问题,这听起来很奇怪,但实际上并非如此。 我将别名导出到内部符号,这恰好是从另一个文件导入的符号。

源代码

我更喜欢C#的工作原理,我可以在两个文件中定义命名空间,并以某种方式将别名相互别名,这样只需要引用一个文件,但ECMAScript 6兼容的TypeScript似乎不可能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM