📜  打字稿环境声明

📅  最后修改于: 2021-01-11 12:55:30             🧑  作者: Mango

TypeScript环境声明

TypeScript提供了一种安全便捷地使用现有JavaScript库(如jQuery,AngularJS,Node.js等)的方法。Ambient声明使我们能够安全地使用现有流行的JavaScript库。

环境声明将其他地方存在的实际源代码(如变量/函数)告知TypeScript编译器。如果我们的TypeScript代码需要使用以普通JavaScript库(如jQuery / AngularJS / Node.js)编写的第三方库,则我们始终可以编写环境声明。环境声明描述了将要用TypeScript编写的类型。

环境宣言

环境声明文件需要以扩展名(d.ts)保存。扩展名为.d.ts的文件必须在每个根级别定义的前面都带有声明关键字。作者可以清楚地看到TypeScript不会发出任何代码。作者需要确保声明的项目将在运行时存在。

环境声明告诉编译器其他地方存在的实际源代码。如果这些源代码在运行时不存在,而我们尝试使用它们,则它将中断而不会发出警告。

环境声明文件类似于docs文件。如果源更改,则还需要保持文档更新。如果环境声明文件未更新,则返回编译错误。

Test.d.ts

我们无法将上面的文件反编译为JavaScript。我们可以将上述文件用于类型安全IntelliSense

我们可以使用define关键字声明环境变量和方法。环境声明的语法如下。

句法

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()函数与类型安全一起使用,则可以通过环境声明来实现。让我们创建一个环境声明文件。

计算总和

declare module TestSum { 
   export class Calc { 
      doSum(a:number, b:number) : number; 
   }
}

现在,将此环境声明文件(CalcSum.d.ts)包含到我们的TypeScript文件中。

维护

///  
var obj = new TestSum.Calc(); 
console.log("Sum: " +obj.doSum(15,25));

通过在控制台上使用以下命令来编译并执行Main.ts文件。

$ tsc main.ts
$ node Main.js

我们将获得以下输出。

Sum: 40