TypeScript 里 .d.ts 文件的用处

简介: TypeScript 里 .d.ts 文件的用处

“d.ts”文件用于为 TypeScript 提供有关用 JavaScript 编写的 API 的类型信息。这个想法是你正在使用像jQuery 或 underscore 这样现有的 javascript 库。 您想使用 TypeScript 来消费 这些 jQuery 库实现的 API。


您可以编写仅包含类型注释的 d.ts 文件,而不是在 TypeScript 中重写 jquery 或 underscore 或其他任何内容。然后从您的 TypeScript 代码中,可以在仍然使用纯 JavaScript 库的同时,获得静态类型检查的 TypeScript 优势。


这要归功于 TypeScript 的约束,即不允许您在导入语句的末尾添加“.ts”扩展名。 因此,当您引用某个文件时,例如 my-module.js,如果它旁边有一个 my-module.d.ts,那么 TypeScript 将包含其内容:

src/
  my-module.js
  my-module.d.ts
  index.ts

my-module.js 的内容:



const thing = 42;
module.exports = { thing };

my-module.d.ts 的内容:


export declare const thing: number;

index.ts 的内容:


import { thing } from "./my-module"; // <- no extension
// runtime implementation of `thing` is taken from ".js"
console.log(thing); // 42
// type declaration of `thing` is taken from ".d.ts"
type TypeOfThing = typeof thing; // number

也就是说,类型定义和运行时实现,TypeScript 可以自动分别从 *.d.ts 和 *.js 中获取。


当 TypeScript 脚本被编译时,有一个选项可以生成一个声明文件(扩展名为 .d.ts),作为编译后的 JavaScript 中组件的接口。 在此过程中,编译器剥离所有函数和方法主体,仅保留导出类型的签名。 然后,当第三方开发人员从 TypeScript 使用它时,生成的声明文件可用于描述 JavaScript 库或模块的导出虚拟 TypeScript 类型。


声明文件的概念类似于 C/C++ 中头文件的概念。


可以为现有的 JavaScript 库手动编写类型声明文件,就像为 jQuery 和 Node.js 所做的那样。


大量流行 JavaScript 库的声明文件集合托管在 GitHub 上的绝对类型和类型注册表中。 提供了一个名为 Typings 的命令行实用程序来帮助从存储库中搜索和安装声明文件。


相关文章
|
5月前
|
JavaScript 前端开发 程序员
总结TypeScript 的一些知识点:TypeScript 声明文件
程序来输出 "Hello World" :当然,很多流行的第三方库的声明文件不需要我们定义了,比如 jQuery 已经有人帮我们定义好
总结TypeScript 的一些知识点:TypeScript 声明文件
|
5月前
|
JavaScript 前端开发 编译器
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
119 0
|
5月前
|
编解码 JavaScript 前端开发
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
258 0
|
2月前
|
JavaScript IDE 开发工具
|
4月前
|
JavaScript 前端开发 IDE
TypeScript中的声明文件(.d.ts):扩展类型系统
TypeScript的`.d.ts`声明文件为JS库提供类型信息,增强IDE支持,如自动完成和类型检查。通过声明合并,可在全局作用域定义类型。示例包括为`my-library`创建声明模块,导出函数和接口。声明文件通常存于`@types`或指定`typeRoots`。用于旧JS代码的类型注解,如`myGlobalObject`。学习更多,参阅TypeScript官方文档。分享你的TS声明文件经验!
122 1
|
5月前
|
JavaScript 前端开发 编译器
如何编译Typescript文件?
如何编译Typescript文件?
|
5月前
|
JavaScript 前端开发 编译器
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(下)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
51 0
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(下)
|
5月前
|
JavaScript
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(上)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
64 0
|
5月前
|
JavaScript 前端开发 编译器
TypeScript进阶(四)声明文件
TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的超集,为 JavaScript 添加了静态类型检查和其他一些特性。TypeScript 的声明文件是一种特殊的文件,用于描述 JavaScript 库、框架或模块的类型信息。通过声明文件,我们可以在 TypeScript 中使用第三方 JavaScript 库,并获得类型检查和智能提示的好处。 本文将深入探讨 TypeScript 声明文件的相关概念、语法和实践,帮助读者更好地理解和使用声明文件。
63 0
|
11天前
|
JavaScript
typeScript进阶(9)_type类型别名
本文介绍了TypeScript中类型别名的概念和用法。类型别名使用`type`关键字定义,可以为现有类型起一个新的名字,使代码更加清晰易懂。文章通过具体示例展示了如何定义类型别名以及如何在函数中使用类型别名。
28 1
typeScript进阶(9)_type类型别名