1

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)。

4

1 回答 1

1

在这种情况下的目的是什么

环境声明。window主要是为了支持不是用 TypeScript 编写的库(和类似的环境变量)。

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

但是,变量声明的目的使我难以理解。

一些库提供了一个全局变量。例如$通过 jquery。

此处涵盖此主题:https ://basarat.gitbooks.io/typescript/content/docs/types/ambient/variables.html

我正在努力弄清楚“导入”和变量声明到底发生了什么

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

这在tips此处的部分中进行了介绍:https ://basarat.gitbooks.io/typescript/content/docs/project/declarationspaces.html

于 2015-10-14T23:49:51.527 回答