TypeScript,声明变量与声明模块

时间:2015-10-14 23:42:56

标签: typescript typescript1.6

TL; DR

在typescript中声明变量是什么意思?例如(来自TypeScript手册或wiki):

声明var d3:D3.Base;

这种情况的目的是什么?

更多想法:

据我所知,声明一个模块或命名空间表示它是环境的,即它没有编译成JavaScript,只用于描述对象的形状(类型检查)。但是,变量声明的目的不在于我。

问题出现了,因为我正在查看明确键入的角度声明文件(angular.d.ts):

declare var angular: angular.IAngularStatic;

// Support for painless dependency injection
interface Function {
    $inject?: string[];
}

// Collapse angular into ng
import ng = angular;
// Support AMD require
declare module 'angular' {
    export = angular;
}

///////////////////////////////////////////////////////////////////////////////
// ng module (angular.js)
///////////////////////////////////////////////////////////////////////////////
declare module angular {......module declaration continues....

我正在努力弄清楚" import"""和变量声明。 Visual Studio Code似乎不喜欢导入,但Visual Studio 2015接受它(都使用TypeScript 1.6.2)。

1 个答案:

答案 0 :(得分:1)

  

本案例的目的是什么

环境声明。主要用于支持未使用TypeScript编写的库(以及window等环境变量)。

更多:https://basarat.gitbooks.io/typescript/content/docs/types/ambient/intro.html

  

但是,变量声明的目的不在于我。

某些库提供全局变量。例如。 jquery $

此主题包含在此处:https://basarat.gitbooks.io/typescript/content/docs/types/ambient/variables.html

  

我正在努力弄清楚" import"""和变量声明

import可用于复制类型(此处为declare module angular)。

此处的tips部分介绍了这一点:https://basarat.gitbooks.io/typescript/content/docs/project/declarationspaces.html