首页 > 其他分享 >了解.d.ts

了解.d.ts

时间:2023-09-01 12:13:53浏览次数:29  
标签:文件 TypeScript JavaScript ts add 了解 模块

什么是.d.ts?

  ".d.ts" 是 TypeScript 的声明文件,主要用于描述已经存在的 JavaScript 库或模块的类型,帮助 TypeScript 更好地知道如何处理您的代码。

在实际开发中,我们可能会用到各种 JavaScript 库或者框架,如 jQuery、React、Vue、Node.js 等,这些库或框架大部分都是使用 JavaScript 编写的,不包含类型信息,因此,如果直接在 TypeScript 项目中使用它们,编译器无法知道这些库的具体类型,无法进行类型检查,也无法提供代码补全等智能提示,这就影响了 TypeScript 的使用体验。

  为了解决这个问题,就需要用到 ".d.ts" 声明文件,它可以帮助 TypeScript 开发者明确这些 JavaScript 库的类型,使 TypeScript 项目能够正确识别这些第三方库,从而利用上 TypeScript 强大的类型系统和编辑器功能,提升开发效率。

   ".d.ts" 声明文件则是TypeScript其一个重要组成部分,帮助 TypeScript 处理和理解原生 JavaScript 库或模块的类型,两者协同工作,使开发更加便捷、高效和稳定。

 

如何生成.d.ts

  我们可以手动创建,也可以利用工具自动生成,当你使用一些第三方的 JavaScript 库或者模块的时候,你通常需要一个对应的 ".d.ts" 文件,以便 TypeScript 能正确地类型检查你的代码。

  这是一个创建 ".d.ts" 文件的基本步骤和示

1. 创建一个 ".d.ts" 文件

我们先创建一个简单的 JavaScript 函数模块 math.js:

例:

function add(x, y) {
  return x + y;
}

 假设我们想在 TypeScript 项目中使用这个 JavaScript 模块,那么我们可以创建一个声明文件 math.d.ts:

declare function add(x: number, y: number): number;

2. 类型声明

在 ".d.ts" 文件中,你会使用到 declare 关键字。这个关键字用来声明一个变量、函数、类等的类型。在上面的例子中,我们就对 add 函数进行了类型声明。

3. 引入模块

在 TypeScript 文件中,你可以使用 import 语句来引入这个 JavaScript 模块:

import { add } from './math'

这时,TypeScript 会去寻找 "math.d.ts" 文件,以获取 add 函数的类型定义。

4. 使用模块

有了函数类型定义,你就可以放心地使用 add 函数,同时享受到 TypeScript 的类型检查:

add('hello', 'world');  // Type error
add(1, 2);  // Correct usage

 

  在大型项目中,手动创建所有 ".d.ts" 文件是一项非常繁重的工作,幸运的是,许多流行的 JavaScript 库和框架已经为我们提供了 ".d.ts" 文件。

标签:文件,TypeScript,JavaScript,ts,add,了解,模块
From: https://www.cnblogs.com/johnnyzhao/p/17671505.html

相关文章

  • 【CF1503A】Balance the Bits(构造)
    题目大意:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;lln;chars[200000+10];chara[200000+10],b[200000+10];intmain(){ ios::sync_with_stdio(0); cin.tie(0); intT; cin>>T; while(T--){ cin>>n>>(s+......
  • HDC.Cloud 2023 | 邂逅AI,华为云CodeArts铸就研发效能10倍提升
    2023年7月7日-9日,华为开发者大会2023(Cloud)在东莞松山湖隆重举行。期间,华为云主办了以“AI‘邂逅’一站式软件开发,CodeArts以10倍效能“绘”企业应用远景”为主题的分论坛。华为云PaaS服务产品部副部长汪维敏携一众技术大咖,献上一场“现代化软件研发”技术盛宴。会中,揭晓作为一站式......
  • CF997E Good Subsegments
    简要题意一个好区间是其中数在值域上连续的区间,给定\(n\)的排列,每次给定一个区间,问其中有多少好的子区间。数据范围:\(1\len\le120000\)。做法只有整体询问的版本是CupboardMonsters。值域上连续当且仅当区间最大值减最小值等于区间长度,考虑维护最大值减最小值减区间长度......
  • TStringList 常用方法与属性
    TStringList常用方法与属性:2var3List:TStringList;4i:Integer;5begin6List:=TStringList.Create;7List.Add('Strings1');{添加}8List.Add('Strings2');9List.Exchange(0,1);{置换}10List.Insert(0......
  • Requsets库入门篇
    一.Requests库的安装打开命令窗口执行命令:pipinstallrequests二.Requests主要方法1.这里requests库的请求方法有很多下面我只介绍我常用的两种方法requests.get() 获取HTML网页的主要方法,对应HTTP的GETrequests.post() 向HTML网页提交POST请求的方法,对应HTTP的POST......
  • 记录一下在使用datav和echarts中遇到的适配问题
    在使用datav和echarts时,遇到窗口大小变化后不能随着窗口尺寸变化,或是直接echarts消失。解决方法:在html中(顺带一提,我使用的是vue+elementui)<template><dv-border-box-13ref="inInfo">          <divclass="product-in-title">       ......
  • tsc : 无法加载文件tsc.ps1
    如果出现以上异常,先全局安装typescript再重试npminstall-gtypescript或者可以使用node自带npx命令执行tsc命令npxtsc'xxx.ts'根据提示,应该是系统禁止运行脚本,参阅官网:https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_ex......
  • Learning Auxiliary Monocular Contexts Helps Monocular 3D Object Detection (2)
    Featurebackbone采用DLA,输入维度为3×H×W的RGB图,得到维度D×h×w的特征图F,然后将特征图送入几个轻量级regressionheads,2Dboudingboxes的中心特征图用下面的模块得到:其中AN是AttentiveNormalization.用公式表示:类似的,2D和3Dboudingboxes的中心之间的offset用公......
  • python3.6使用wordcloud 1.9报错ValueError: Only supported for TrueType fonts
    该版本的wordcloud的源码中显示不兼容python3.6 解决办法:修改wordcloud源码修改前508:box_size=draw.textbox((0,0),word,font=transposed_font,anchor="lt")510:result=occupancy.sample_position(box_size[3]+self.margin,......
  • ECharts图表动态修改series显示隐藏
    目录1、前言2、思路3、实现1、前言最近做的大数据平台,里面很多地方用到了ECharts,其中有个功能,要求将图表分组,根据用户选择的组,来确定ECharts要显示那些线条和柱子,也就是动态的显示option.series。2、思路找了一下EChart的文档,发现可以通过控制option.legend.selected,来动态设......