.d.ts文件和javascript文件在Typescript中是如何组合的?
查看与其他JavaScript库一起使用的部分,我希望看到两个导入:.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
.d.ts
文件.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" {