TS中的声明文件
TS中的声明文件 .d.ts 的作用是为了在TS中使用js文件,但是js文件没有类型,ts又是一个类型严格的语言。所以为了在ts中使用js第三方包,或者自定义Js模块。便由此引出了.d.ts文件。
需要注意的是 声明文件的文件名需要和你引入的js文件名相同,只是文件后缀不同。
描述文件通常可以分为3种。1.全局声明 2.模块声明 3.UMD声明。
UMD就是 既可以全局也可以模块,
所以在此只记录全局和局部的声明文件编写方式
// 全局类库 global-lib.js
function globalLib(options) {
console.log(options);
}
globalLib.version = '1.0.1';
globalLib.doSomething = function() {
console.log('typescript search')
}
// 声明文件 global-lib.d.ts
declare function globalLib(options: globalLib.Options): void;
declare namespace globalLib {
const version: string;
function doSomething(): void;
interface Options {
[propName: string]: any;
}
}
// 模块类库
const version = '1.0.1';
const doSomething = function() {
console.log('typescript search')
}
function moduleLib(options) {
console.log(options);
}
moduleLib.version = version;
moduleLib.doSomething = doSomething;
module.exports = moduleLib;
// 声明文件
declare function moduleLib(option:Options):void;
interface Options {
[key:string]:any
}
declare namespace moduleLib {
const version:string;
function doSomething():void;
}
export = moduleLib;
// 使用
let hello: string = 'Hello TypeScript'
document.querySelectorAll('.app')[0].innerHTML = hello
globalLib({name:'申屠肆'});
console.log(globalLib.version);
import moduleLib from "./libs/module-lib";
import matchModuleLib from './libs/match-module-lib'
console.log(matchModuleLib('asda17398977903sdas'));
moduleLib({name:'模块'})
记录一下
TS中的声明文件的更多相关文章
- TypeScript Writing .d.ts files(编写声明文件)
当使用扩展的JavaScript库或者插件API的时候,将需要使用声明文件(.d.ts)来描述库的类型.本文内容将包括如何编写声明文件相关的一些高级概念,然后用一些例子来展示如何将各式各样的概念与声明 ...
- 自学 TypeScript 第一天 环境开发配置 及 TS 基本类型声明
前言: 自学第一天,什么是TS ,为什么要用 TS TS 全程 Typed JavaScript at Any Scale 解释起来就是 添加了类型系统的 JavaScript, 是 JavaScr ...
- TS学习随笔(七)->声明文件
now我们来看一看TS怎么声明文件, 在JS里面我们经常会使用各种第三方类库,引入方式也不太相同,常见的就是在HTML中通过script标签引入,然后就可以使用全局变量$或者jQuery了 我们通常这 ...
- TS声明文件
now我们来看一看TS怎么声明文件, 在JS里面我们经常会使用各种第三方类库,引入方式也不太相同,常见的就是在HTML中通过script标签引入,然后就可以使用全局变量$或者jQuery了 我们通常这 ...
- Android:关于声明文件中android:process属性说明
笔者在学习Android Service组件的过程中碰到了一个问题,就是在Android应用的声明文件Manifest.xml中有时候会对相关的服务标签设置一个android:process=&quo ...
- TypeScript 如何编写类库声明文件 .d.ts
TypeScript 如何编写类库声明文件 .d.ts how to write a d.ts file declaration-files/ https://www.typescriptlang.o ...
- .net中创建xml文件的两种方法
.net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...
- TypeScript 的声明文件的使用与编写
https://fenying.net/2016/09/19/typings-for-typescript/ TypeScript 是 JavaScript 的超集,相比 JavaScript,其最关 ...
- JS如何捆绑TypeScript声明文件
前话 TypeScript是JavaScript类型的超集 这是TypeScript的文档介绍的一句话,那么他们存在联系呢? 我的理解是,TypeScript在JavaScript基础上引入强类型语言 ...
- 如何编写 Typescript 声明文件
使用TypeScript已经有了一段时间,这的确是一个好东西,虽说在使用的过程中也发现了一些bug,不过都是些小问题,所以整体体验还是很不错的. TypeScript之所以叫Type,和它的强类型是分 ...
随机推荐
- PixiJS源码分析系列: 第一章 从最简单的例子入手
从最简单的例子入手分析 PixiJS 源码 我一般是以使用角度作为切入点查看分析源码,例子中用到什么类,什么方法,再入源码. 高屋建瓴的角度咱也做不到啊,毕竟水平有限 pixijs 的源码之前折腾了半 ...
- 暑假java自学进度总结03
一.今日所学: 1.标识符命名规则: 必须: 1>由数字,字母,下划线,美元符组成: 2>不能以数字开头: 3>不能是关键字: 4>区分大小写: 建议: 1>命名方法,变 ...
- 【ElasticSearch】04 Spring-Data-ElasticSearch
官方网站: https://spring.io/projects/spring-data-elasticsearch 对应 Elasticsearch7.6.2,Spring boot2.3.x 一般 ...
- 【Spring】03 XML配置
Alias别名设置 可以为一个Bean的ID再设置一个ID 多一个可用标识,大概... 在获取实例注入参数时,两个标识都可以使用 除了Alias可以设置别名之外,Bean的标签本身也可以设置第二别名 ...
- 【OracleDB】 06 多表查询
多表查询的目的: 从两张以上的数据表中查询每张表的字段 笛卡尔集的问题: 查询职员表一共107条记录 select count(employee_id) from employees; 查询部门表,一 ...
- 【转载】 GPU地址空间的相关概念
为了结合上篇 文章 https://www.cnblogs.com/devilmaycry812839668/p/13264080.html 对RTX显卡是否能够实现P2P通信功能,同时专业级别显 ...
- 网络问题解决:Ubuntu连接局域网中Windows主机上的v2r报错:rejected core/proxy/socks: unknown Socks version: 67
参考: https://github.com/2dust/v2rayN/issues/3916 https://www.eolink.com/news/post/30941.html ======== ...
- 【转载】 实时调度论文中经常出现的术语 ties broken arbitrary的意思 —— 看伪代码时出现 ties broken arbitrary
看伪代码时突然看到这样的一个Ps标注, ties broken arbitrary, 不明白是啥意思,后来看到下文:https://blog.csdn.net/kangkanglhb88008/ar ...
- C# Cefsharp 如何利用[Attribute]的把C#中的方法给到浏览器中调用
背景 "有没有遇见这样一个场景,需要注入到浏览器的类太多,又想统一管理且不遗漏,有没有什么好办法?""有有有,把头伸过来~" 解决办法 第一步:提供一个[Att ...
- C# ?. 判斷Null值
有一句代碼: @Html.DisplayFor(modelItem => item.SellDate, "RegularDate") RegularDate.cshtml 內 ...