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语法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: SAP Spartacus的Storef
- 下一篇: AWE2023|京东家电家居打造“家场景
