.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文件

    




  • 2017-04-06 15:15:16

    PHP-FPM配置及使用总结

    PHP-FPM配置及使用总结: PHP-FPM是一个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中,我们必须将其patch到PHP源代码中,然后再行编译才能使用。而现在我们可以在PHP 5.3.2及更新版本中直接开启并使用即可,因为PHP从该版本已经将其收入到软件包中,所以其不再是补丁包的存在了。

  • 2017-04-07 23:18:29

    mac 安装composer

    当你下载了 composer.phar 后,可以将它放在目录中,但每次当你建立新目录时,你必須再复制一个副本到新目录中,这样比较麻烦。所以最佳做法是将它放到 usr/local/bin 目录中中,成为全域指令。

  • 2017-04-12 10:52:35

    最全面的Android Webview详解

    现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图

  • 2017-04-12 11:22:43

    WebView你真的熟悉吗?看了才知道

    在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。下面总结一下使用webview遇到的那些事、那些坑。

  • 2017-04-12 11:28:14

    史上最全webview详解

    WebView在现在的项目中使用的频率应该还是非常高的。 我个人总觉得HTML5是一种趋势。找了一些东西,在此总结。 本篇最后有一个非常不错 的 Html5Activity 加载类,不想看的可以直接跳下载。

  • 2017-04-12 23:11:59

    Android Studio签名打包的两种方式

    给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份(即keystore),多个app可以使用同一个签名。

  • 2017-04-13 10:57:08

    webstorm 怎么关闭jshint

    You need to configure the inspections in Settings/Editor/Inspections, then in the list on the right, find JavaScript/JavaScript validity issues. That worked for me to remove the Chai warnings. (I am using the WebStorm 11 EAP at the moment.)