TypeScript 环境声明
TypeScript 提供了安全、简单地使用现有的 JavaScript 库,比如 jQuery、AngularJS、Node.js 等等。环境声明允许我们安全地使用现有流行的 JavaScript 库。
环境声明告诉 TypeScript 编译器真实的源代码(如变量/函数)存在于其他地方。如果我们的 TypeScript 代码需要使用第三方库,而这些库是用普通的 JavaScript 库编写的,比如 jQuery/AngularJS/Node.js,我们总是可以编写环境声明。环境声明描述了在 TypeScript 中会存在的类型。
环境声明
环境声明文件的扩展名必须为 (d.ts)。每个根级别定义都必须使用 declare 关键字为前缀。这使得作者清楚地知道 TypeScript 不会发出任何代码,并且作者需要确保已声明的项在运行时将存在。
环境声明告诉编译器实际的源代码存在于其他地方。如果这些源码在运行时不存在,而我们尝试使用它们,那么它将在没有警告的情况下崩溃。
环境声明文件就像是 文档 文件。如果源发生变化,文档也需要保持更新。如果环境声明文件没有更新,它将返回编译错误。
Test.d.ts
我们不能将上面的文件 转译 为 JavaScript。我们可以使用以上文件进行 类型安全 和 智能感知。
我们可以使用 declare 关键字声明环境变量和方法。环境声明的语法如下。
语法
declare module module_name{
}
访问环境文件的语法
///
例子
我们可以通过以下示例理解环境声明。 这里,我们正在使用第三方 JavaScript 库以以下代码。
Addition.js
var TestSum;
(function (TestSum) {
var Calc = (function () {
function Calc() {
}
Calc.prototype.doSum = function (a, b) {
return a + b;
}
})
})
以上是一个 JS 文件,我们没有太多时间去将这个库重写为 TypeScript。但是,如果我们需要使用 doSum() 函数进行类型安全,那么我们可以使用 环境声明 来实现。让我们创建一个环境声明文件。
CalcSum.d.ts
declare module TestSum {
export class Calc {
doSum(a:number, b:number) : number;
}
}
现在,将环境声明文件 (CalcSum.d.ts) 包含到 TypeScript 文件中。
Main.ts
///
var obj = new TestSum.Calc();
console.log("Sum: " +obj.doSum(15,25));
通过在控制台上使用以下命令编译和执行 Main.ts 文件。
$ tsc main.ts
$ node Main.js
我们将得到以下输出。
Sum: 40