TypeScript里的.d.ts语法
在SAP Spartacus的實現(xiàn)里有很多.d.ts文件:
https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html
相當(dāng)于commonJS的module pattern.
回憶一下commonJS:
Node 應(yīng)用由模塊組成,采用 CommonJS 模塊規(guī)范。
每個文件就是一個模塊,有自己的作用域。在一個文件里面定義的變量、函數(shù)、類,都是私有的,對其他文件不可見。
// example.js var x = 5; var addX = function (value) {return value + x; };上面代碼中,變量x和函數(shù)addX,是當(dāng)前文件example.js私有的,其他文件不可見。
如果想在多個文件分享變量,必須定義為global對象的屬性。
global.warning = true;
上面代碼的warning變量,可以被所有文件讀取。當(dāng)然,這樣寫法是不推薦的。
CommonJS規(guī)范規(guī)定,每個模塊內(nèi)部,module變量代表當(dāng)前模塊。這個變量是一個對象,它的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和函數(shù)addX。
因此,采用commonJS規(guī)范書寫的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; }對應(yīng)的TypeScript:
export function getArrayLength(arr: any[]): number;總結(jié)
以上是生活随笔為你收集整理的TypeScript里的.d.ts语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Spartacus的Storef
- 下一篇: Angular源代码里字母Theta的含