.d.ts与.ts的区别 .d.ts怎么用

2020-04-15 21:14:13

.d.ts与.ts是两个不同的文件,这个首先要了解。

  1. .d.ts的第一个作用,是我们通过写.d.ts,让ide能有更好的语法提示。


    .ts 表示你的代码就是用 ts 写的。    

        但这种代码最后会编译成 .js 的 js 代码,供他人使用。这个时候,类型信息就丢失了。所以 ts 编译器会自动根据 .ts 中的信息,生成对外的 .d.ts 文件,和生成的 js 文件搭配使用。其中,js 文件是给运行引擎用的,而 .d.ts 文件是给 IDE(智能编辑器)写代码时参考用的。

        另一种情况是,你的代码不是用 ts 写的,只是希望最后给别人用时能有类型信息作为辅助,那么这种情况下的 .d.ts 文件就需要你手写了。


2.在TypeScript项目中直接引入Javascript包是不能使用的,因为包中缺少TypeScript类型声明,如果是自己写的包,可以考虑自己增加一个.d.ts类型声明文件,如果代码比较多或者使用的是第三方的包,自己写就比较麻烦了。第三方的包首先考虑找一个别人写好的声明文件,如果没有可以使用一些自动生成声明文件的工具。

d.ts就是TypedDefinition 类型定义文件,用来定义类型信息以及接口规范。
想要在ts使用js里面的方法,不一定要有类型定义。
但如果没有类型定义文件, 你在编码的过程中,编辑器不会给你方法的提示,你想找API的时候也没有对应的文档。

如果想用早期的JS library,是没有类型定义信息的,这个时候为了使用方便我们就需要创建一个对应的d.ts文件。



参考地址如下

    写typescript项目时怎么引入第三方包的d.ts声明文件

    d.ts你知道多少?

    TypeScript项目中引入Javascript包增加.d.ts类型声明文件

    如何编写一个d.ts文件

    




  • 2019-10-23 10:20:48

    php 去掉 头尾 空格 2种方法

    看似很简单的问题,其实还是有点坑的,首先这里 空格转义,不是字符串,直接用trim()是去不掉。

  • 2019-10-23 23:25:22

    PostMapping,GetMapping不固定路径的写法

    PostMapping中的value属性是数组,所以可以定义多个路径,required属性默认是true,不必再写required=true,默认表示该参数是必须要有的,如果写required=false,表示该参数是可选的,可有可无。

  • 2019-10-24 01:14:29

    通过属性搜索商品mysql设计

    属性是可以动态扩展的,问题:属性是搜索条件 问:请展示出 材质为塑料 防水为YES,颜色为绿色的商品详细信息,按照sort_filed排序

  • 2019-10-25 15:18:18

    Vue.use Vue.prototype区别

    1、不是为了vue写的插件(插件内要处理)不支持Vue.use()加载方式 2、非vue官方库不支持new Vue()方式 3、每一个vue组件都是Vue的实例,所以组件内this可以拿到Vue.prototype上添加的属性和方法。

  • 2019-10-25 23:33:45

    php制作漂亮的随机颜色标签云效果

    代码中的array里面的字符串就是各种随机色的编码,大家可以根据自己的需求来配置颜色。 然后input1里面是字体大小的随机代码,也可以自行修改。

  • 2019-10-27 00:23:42

    mac卡住,强制关闭应用

    要正常退出(关闭)Mac 应用,请从菜单栏的应用菜单中选取“退出”,或按下 Command (⌘)-Q。如果应用不退出,请按照以下步骤强制该应用退出。