TL;博士
在打字稿中声明变量是什么意思?例如(来自 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....
我正在努力弄清楚“导入”和变量声明到底发生了什么。Visual Studio Code 似乎不喜欢导入,但 Visual Studio 2015 接受它(两者都使用 TypeScript 1.6.2)。