打字稿:理解这些片段是如何组合的——打字、@typings、tsc 和 DefinitelyTypes

Typescript: Understanding how the pieces fit - typings, @typings, tsc and DefinitelyTypes

我做对了吗?

tsc


它是我机器上的 typescript cli 工具和全球版本 运行。

类型


typings 是几件事。一个 cli 工具,用于将 .d.ts 文件安装到您的项目以及保存到我的项目中的文件夹中。

例如:

您可以通过运行:

搜索.d.ts脚本
typings search foo

并添加一个包:

typings install --global --save dt~foo

然后让 typings/index.d.ts 引用我所有的 .d.ts 定义文件

/// <reference path="globals/foo/index.d.ts" />

然后如果我想在我的项目中的任何地方使用 foo 我可以添加

 declare var foo: any;
 import foo from "foo";

绝对类型


Definitely Types 文件有一个 .d.ts 扩展,允许在 Typescript 中调用 javascript 方法

@typings


是位于 node_modules/@typings 的文件夹,与 typings 文件夹相同,但由 运行 npm install @typings/foo 而不是 typings install foo 安装。


我的问题是:

  1. 为什么有两种不同的安装方式?第一种方法是将 Definitely Types 文件包含到我的项目中的折旧方法吗?

  2. @typings 模块是否仍可由 运行 搜索?

    键入搜索 foo

  3. 我如何让我的项目知道我的 typings,像 /// <reference path="globals/foo/index.d.ts" /> 这样定义它们是否被废弃了?

  4. 我 always/when 我是否在我的项目中声明我的 .d.ts 文件,如 declare var foo: any;

  5. 安装时还需要使用ambientglobal标志吗?

这让我有点困惑,而且过去几个月我一直在熟悉 TypeScript...

tsc

正确,这是翻译文件的 TypeScript Compiler至 JavaScript.

打字

Typings 是一个 cli TypeScript 定义管理器,它允许您管理(搜索、安装、卸载等)来自各种来源的 JavaScript 库的定义文件 (*.d.ts) .

确定类型

DefinitelyTyped 是定义文件的存储库,它是 Typings 允许您从中 gather/manage 文件的来源之一。

npm @types

好消息是使用最新版本的 TypeScript(2.0+ 版),您不再需要使用管理器 and/or 担心从哪些存储库收集文件。 DefinitelyTyped 的所有定义现在都可以通过 npm 安装(例如:npm install @types/knockout --save)。

使用此方法将下载定义文件,将依赖项保存在您的 project.json 文件中(如果指定了 --save 标志),然后 TypeScript 会自动查找每当您 require() 代码中的模块时的定义(如果您使用此方法,则不再需要使用 /// <reference />)。


TypeScript website has pretty extensive documentation on project setup and how to use tsconfig.json 文件,用于正确设置您的应用程序以使用或不使用定义文件进行编译。