TypeScript里的.d.ts语法
在SAP Spartacus的实现里有很多.d.ts文件:
https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html
相当于commonJS的module pattern.
回忆一下commonJS:
Node 应用由模块组成,采用 CommonJS 模块规范。
每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
// example.js
var x = 5;
var addX = function (value) {return value + x;
};
上面代码中,变量x和函数addX,是当前文件example.js私有的,其他文件不可见。
如果想在多个文件分享变量,必须定义为global对象的属性。
global.warning = true;
上面代码的warning变量,可以被所有文件读取。当然,这样写法是不推荐的。
CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。
var x = 5;
var addX = function (value) {return value + x;
};
module.exports.x = x;
module.exports.addX = addX;
上面代码通过module.exports输出变量x和函数addX。
因此,采用commonJS规范书写的JavaScript代码:
const maxInterval = 12;function getArrayLength(arr) {return arr.length;
}module.exports = {getArrayLength,maxInterval,
};
使用TypeScript .d.ts写成:
export function getArrayLength(arr: any[]): number;
export const maxInterval: 12;
使用ES module书写的JavaScript代码:
export function getArrayLength(arr) {return arr.length;
}
对应的TypeScript:
export function getArrayLength(arr: any[]): number;
TypeScript里的.d.ts语法相关推荐
- 【TS语法|基础入门】《前端的未来——TypeScript》掌握TS基础语法
前端的未来--TypeScript TS基础语法 文章简介 主要内容 1 第一个 TypeScript 程序 2 TypeScript 保留关键字 2.1 TypeScript保留关键字 2.2 空白 ...
- TypeScript里string和String,真不是仅仅是大小写的区别
本文分享自华为云社区<TypeScript里string和String的区别>,作者:gentle_zhou . 背景 与JavaScript语言不同的是,TypeScript使用的是静态 ...
- Typescript系列(一):TS入门教程之简介、安装、编译、监听
一个比java更script的语言,它是js的超集,它是Typescript. 一.typescript是什么? Typescript是javascript的一个超集,主要提供了类型系统和对ES6的支 ...
- 【TypeScript 专题】之 Ts 中的类(class)
在 ES6 中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类.它本质仍然是函数,它让对象原型的写法更加清晰.更像面向对象编程的语法. 在 TypeScript 中,除了实 ...
- ts语法基础——基础类型
TS 语法 TS 基础类型 TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用 TS 支持的变量类型如下: 类型 描述 boolean 限制 ...
- TypeScript里的工具类型Partial的理解用法
TypeScript里的工具类型Partial的理解用法 Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional): 其实Partial源码很简单 Partial 可以快速 ...
- php 得到 ts文件,获取TypeScript声明文件.d.ts步骤详解
这次给大家带来获取TypeScript声明文件.d.ts步骤详解,获取TypeScript声明文件.d.ts的注意事项有哪些,下面就是实战案例,一起来看一下. 一.TypeScript的声明文件就像C ...
- TypeScript 里的 module 解析过程 - Module Resolution
Module Resolution 模块解析是编译器用来确定导入所指内容的过程.考虑像 import { a } from "moduleA"; 这样的导入语句.为了检查 a 的任 ...
- TypeScript 里 interface 和 type 的区别
StackOverflow 上的讨论链接 Interface vs Type alias in TypeScript 2.7 Differences Between Type Aliases and ...
最新文章
- apache在windows上开启gzip的方法
- ***远程连接MYSQL提示1130 - Host is not allowed to connect to this MySQL server
- 中国电信第三大IDC机房落户南海
- android (三)、Activity工作原理
- 关于djangorestframework
- 各大人脸识别库的介绍
- SharpDevelop5.1支持.net4.5.2以上版本
- 0day安全:软件漏洞分析技术(第2版)
- jquery二级联动下拉菜单
- Spring bean解析 - refresh
- Mac AndroidStudio .9图片制作
- 把时间当作朋友——第1章 醒悟
- 正则表达式匹配/通配符匹配
- Python——图像处理(crop()函数、thumbnail方法)
- 北京BGP机房的发展历程
- Si9000计算嘉立创JLC04161H-7628(推荐/免费)方法
- 数据库服务器日常维护维护记录,数据库服务器日常维护工作
- Easyx-----c语言实现斗兽棋
- win+r的快捷操作
- HAL库学习笔记ADC篇----ADC多通道连续转换+DMA方式
热门文章
- 让架构更简单,QCon上海2016热点前瞻
- uboot移植(七)——移植三星官方uboot(一)
- mac系统 PDO连接数据库报错处理
- WdOS源码编译安装MySQL 5.5.25a
- 用Syslog 记录UNIX和Windows日志的方法
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- Mybatis的下载并搭建核心架构
- PHP 5.6 开启CURL HTTPS 类型
- mvc ajax给control传值问题
- Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json