如何合并打字稿中的.D.TS文件和JavaScript文件



查看部分中的文档>与其他JavaScript库一起工作,我希望看到两个导入:

  1. .d.ts文件的第一个
  2. 实际实现JavaScript文件的第二个。

然而,似乎仅通过奇怪的注释参考导入.d.ts,然后加载URL,然后在.d.ts文件中声明。

/// <reference path="node.d.ts"/>
import * as URL from "url";
let myUrl = URL.parse("http://www.typescriptlang.org");

那么这实际上是如何工作的?也许我可能希望看到.d.ts文件对实现的参考,但我也看不到。有魔术涉及吗?

编辑:进一步要求澄清。

请确认上面引用的import *行不会直接从.d.ts文件加载任何内容。鉴于文件的第一行是:

,这是令人困惑的
declare module "url" {

表明这是从中加载模块的地方。我以为reference行用于指示指示.d.ts文件的路径,然后import行加载了此文件的类型信息。

某些.d.ts文件用var声明实体向我提出的事实,可能不仅仅包含信息。

打字稿的主要目的之一是提供JavaScript中缺少更强的类型系统。这就是D.TS文件的目的 - 他们描述了JavaScript库的"内容",以便您的打字稿转板或IDE可以为您提供方便的Typechecks等。当您编译打字稿应用程序时,所有类型的信息都会丢失,并且您将纯JavaScript作为输出。

关于您的问题 - 您参考Node.d.ts,以便给出transpiler/ide提示urlpathfs等。模块在node.js中 - 因此您可以获得类型检查。实际url模块的导入本身与Typescript无关,并且由Node.js根据其模块分辨率规则

进行。

编辑

声明文件不会导致 typescript Compiler(链接(发出的任何代码。因此,通过其定义的性质,不可能从它们中加载(导入(任何东西。

最新更新