前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript里的.d.ts语法

TypeScript里的.d.ts语法

作者头像
Jerry Wang
发布2020-09-10 16:25:21
1.2K0
发布2020-09-10 16:25:21
举报

在SAP Spartacus的实现里有很多.d.ts文件:

https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html

相当于commonJS的module pattern.

回忆一下commonJS: Node 应用由模块组成,采用 CommonJS 模块规范。

每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

代码语言:javascript
复制
// 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属性。

代码语言:javascript
复制
var x = 5;
var addX = function (value) {
  return value + x;
};
module.exports.x = x;
module.exports.addX = addX;

上面代码通过module.exports输出变量x和函数addX。

因此,采用commonJS规范书写的JavaScript代码:

代码语言:javascript
复制
const maxInterval = 12;

function getArrayLength(arr) {
  return arr.length;
}

module.exports = {
  getArrayLength,
  maxInterval,
};

使用TypeScript .d.ts写成:

代码语言:javascript
复制
export function getArrayLength(arr: any[]): number;
export const maxInterval: 12;

使用ES module书写的JavaScript代码:

代码语言:javascript
复制
export function getArrayLength(arr) {
  return arr.length;
}

对应的TypeScript:

代码语言:javascript
复制
export function getArrayLength(arr: any[]): number;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档