在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语法相关推荐

  1. 【TS语法|基础入门】《前端的未来——TypeScript》掌握TS基础语法

    前端的未来--TypeScript TS基础语法 文章简介 主要内容 1 第一个 TypeScript 程序 2 TypeScript 保留关键字 2.1 TypeScript保留关键字 2.2 空白 ...

  2. TypeScript里string和String,真不是仅仅是大小写的区别

    本文分享自华为云社区<TypeScript里string和String的区别>,作者:gentle_zhou . 背景 与JavaScript语言不同的是,TypeScript使用的是静态 ...

  3. Typescript系列(一):TS入门教程之简介、安装、编译、监听

    一个比java更script的语言,它是js的超集,它是Typescript. 一.typescript是什么? Typescript是javascript的一个超集,主要提供了类型系统和对ES6的支 ...

  4. 【TypeScript 专题】之 Ts 中的类(class)

    在 ES6 中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类.它本质仍然是函数,它让对象原型的写法更加清晰.更像面向对象编程的语法. 在 TypeScript 中,除了实 ...

  5. ts语法基础——基础类型

    TS 语法 TS 基础类型 TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用 TS 支持的变量类型如下: 类型 描述 boolean 限制 ...

  6. TypeScript里的工具类型Partial的理解用法

    TypeScript里的工具类型Partial的理解用法 Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional): 其实Partial源码很简单 Partial 可以快速 ...

  7. php 得到 ts文件,获取TypeScript声明文件.d.ts步骤详解

    这次给大家带来获取TypeScript声明文件.d.ts步骤详解,获取TypeScript声明文件.d.ts的注意事项有哪些,下面就是实战案例,一起来看一下. 一.TypeScript的声明文件就像C ...

  8. TypeScript 里的 module 解析过程 - Module Resolution

    Module Resolution 模块解析是编译器用来确定导入所指内容的过程.考虑像 import { a } from "moduleA"; 这样的导入语句.为了检查 a 的任 ...

  9. TypeScript 里 interface 和 type 的区别

    StackOverflow 上的讨论链接 Interface vs Type alias in TypeScript 2.7 Differences Between Type Aliases and ...

最新文章

  1. apache在windows上开启gzip的方法
  2. ***远程连接MYSQL提示1130 - Host is not allowed to connect to this MySQL server
  3. 中国电信第三大IDC机房落户南海
  4. android (三)、Activity工作原理
  5. 关于djangorestframework
  6. 各大人脸识别库的介绍
  7. SharpDevelop5.1支持.net4.5.2以上版本
  8. 0day安全:软件漏洞分析技术(第2版)
  9. jquery二级联动下拉菜单
  10. Spring bean解析 - refresh
  11. Mac AndroidStudio .9图片制作
  12. 把时间当作朋友——第1章 醒悟
  13. 正则表达式匹配/通配符匹配
  14. Python——图像处理(crop()函数、thumbnail方法)
  15. 北京BGP机房的发展历程
  16. Si9000计算嘉立创JLC04161H-7628(推荐/免费)方法
  17. 数据库服务器日常维护维护记录,数据库服务器日常维护工作
  18. Easyx-----c语言实现斗兽棋
  19. win+r的快捷操作
  20. HAL库学习笔记ADC篇----ADC多通道连续转换+DMA方式

热门文章

  1. 让架构更简单,QCon上海2016热点前瞻
  2. uboot移植(七)——移植三星官方uboot(一)
  3. mac系统 PDO连接数据库报错处理
  4. WdOS源码编译安装MySQL 5.5.25a
  5. 用Syslog 记录UNIX和Windows日志的方法
  6. Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
  7. Mybatis的下载并搭建核心架构
  8. PHP 5.6 开启CURL HTTPS 类型
  9. mvc ajax给control传值问题
  10. Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json