TypeScript 环境声明
Typescript 中的 Ambient 声明用于告诉 typescript 编译器实际代码存在于其他地方。使用纯 JavaScript 或 CoffeeScript 编写的第三方库,例如 jquery/angularjs/nodejs,虽然这是我们使用 TypeScript 所必需的,但我们始终可以编写环境声明并使用它们。
环境声明:
环境声明的文件扩展名为 (d.ts)。对于每个根级别定义,文件扩展名 (d.ts) 必须具有要在 Typescript 中使用的 declare 关键字。
如果我们尝试使用运行时不存在的源代码,那么程序将在没有警告的情况下中断。
环境声明文件类似于 docs 文件。文档需要在源更改时保持更新。否则,如果环境声明文件未更新,我们将收到编译器错误。
File.d.ts
我们无法将上述文件转译成 JavaScript。上述文件将用于类型安全和智能感知。
使用 declare 关键字,可以声明环境变量和方法。
环境声明的语法是:
句法:
declare module module_name{
}
访问环境文件的语法:
环境声明可以通过以下示例来理解。下面,我们使用带有以下代码的第三方 JavaScript 库。
例子:
var TestSum;
(function (TestSum) {
var Cal = (function () {
function Cal() {
}
Cal.prototype.doSum = function (a, b) {
return a + b;
}
})
})
由于这是一个 JS 文件,我们没有时间将这个库重写为 typescript。但是仍然需要使用具有类型安全性的 doAdd()函数,那么我们可以通过环境声明来做到这一点。让我们创建一个环境声明文件。
declare module TestAdd{
export class Cal {
doAdd(a:number, b:number) : number;
}
}
现在,将此环境声明文件 (CalAdd.d.ts) 包含到我们的 TypeScript 文件中。
Main.ts
var obj = new TestAdd.Cal();
console.log("Add: " +obj.doAdd(40, 25));
在控制台上使用以下命令编译并执行 Main.ts 文件:
$ tsc main.ts
$ node Main.js
输出:
我们将得到以下输出。
65