.d.ts文件和javascript文件在Typescript中是如何组合的?

.d.ts文件和javascript文件在Typescript中是如何组合的?,typescript,Typescript,查看与其他JavaScript库一起使用的部分,我希望看到两个导入: 第一个用于.d.ts文件 第二个用于javascript文件的实际实现 但是,似乎只有.d.ts通过一个奇怪的注释引用导入,然后加载URL,URL在.d.ts文件中声明 /// <reference path="node.d.ts"/> import * as URL from "url"; let myUrl = URL.parse("http://www.typ

查看与其他JavaScript库一起使用的部分,我希望看到两个导入:

  • 第一个用于
    .d.ts
    文件
  • 第二个用于javascript文件的实际实现
  • 但是,似乎只有
    .d.ts
    通过一个奇怪的注释引用导入,然后加载URL,URL在
    .d.ts
    文件中声明

    /// <reference path="node.d.ts"/>
    import * as URL from "url";
    let myUrl = URL.parse("http://www.typescriptlang.org");
    
    这表明模块是从这里加载的。 我原以为
    引用
    行用于指示路径,以指示
    .d.ts
    文件,然后
    导入
    行从该文件加载类型信息


    使用
    var
    声明实体的事实向我表明,其中可能包含的不仅仅是类型信息。

    typescript的主要目的之一是提供javascript中缺少的更强大的类型系统。这就是d.ts文件的用途——它们描述javascript库的“内容”,以便您的typescript transpiler或IDE可以为您提供方便的类型检查等等。编译typescript应用程序时,所有类型信息都会丢失,并且输出纯javascript

    关于您的问题-您引用node.d.ts是为了给Transbiler/IDE一个提示什么是
    url
    path
    fs
    ,等等。模块位于node.js中-因此您可以进行类型检查。实际的
    url
    模块本身的导入与typescript无关,由node.js根据其模块解析完成

    编辑


    声明文件不会导致typescript编译器()发出任何代码。因此,根据其定义的性质,不可能从它们加载(导入)任何内容

    谢谢你的回答。我已经扩展到这个问题,要求进一步澄清我的误解。如果你能解决这个问题,我可以标记你的答案是正确的。我已经添加了一个链接和一个小的澄清-希望这有帮助。
    declare module "url" {