2016-10-17 4 views
2

Я правильно понял?Машинопись: Понимание того, как фигуры подходят - тиски, @typings, tsc и DefinitelyTypes

TSC


Сво инструмент машинопись кли и глобальная версия работает на моем компьютере.

типизации


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"; 

Определенно Типы


Определенно Типы файлы имеют .D. ts расширение, позволяющее использовать javascript-методы в TypScript

@typings


Это папка находится в node_modules/@typings и так же, как в папке typings, но установить, запустив npm install @typings/foo и не typings install foo.


Мои вопросы:

  1. почему существуют два различных способа установки типизации это сделать? Является ли первый метод обесцененным методом включения Определенно типы файлов в мой проект?

  2. Есть @typings модуль все еще доступен для поиска, работая?

    типизации поиск Foo

  3. Как я сделать мой проект в курсе моего typings, сделал определение им нравится /// <reference path="globals/foo/index.d.ts" /> получить слом?

  4. ли я всегда/когда я объявляю мои .d.ts файлы в моем проекте, как declare var foo: any;

  5. вам все еще нужно использовать ambient или global флаги при установке делать?

ответ

2

Это было немного запутанным для меня, так и я провел последнюю пару месяцев ознакомления с машинописью ...

TSC

Правильно, это T ype S cript C ompiler, который переводит ваши файлы на JavaScript.

типизации

типизации является менеджером определения кли машинопись, который позволяет управлять (поиск, установки, удаления и т.д.) файлы определений (* .d.ts) для библиотек JavaScript из различных источников ,

DefinitelyTyped

DefinitelyTyped является хранилищем файлов определения, который является одним из источников, типизация позволяет собирать/управлять файлами с.

НПМ @types

Хорошая новость с последним выпуском машинопись (версия 2.0+) вам больше не нужно использовать менеджер и/или беспокоиться о том, какие репозитории собрать файлы. Все определения из DefinitelyTyped теперь доступны для установки через npm (пример: npm install @types/knockout --save).

Используя этот метод загрузит файл определения, сохранить зависимость в вашем project.json файл (если указан --save флаг), который машинопись автоматически ищет определения, когда вы require() модуль внутри кода (вам больше не нужно использовать /// <reference />, если вы используете этот метод).


TypeScript website имеет довольно обширную документацию по настройке проекта и how to use tsconfig.json файлов правильно настроить приложение для компиляции с или без файлов определений.

+0

спасибо, что нашли время, чтобы ответить на этот вопрос. Вы тоже знаете мои вопросы 4 и 5? – garrettmac

+0

4) Ссылка на файлы определений с помощью [triple slash директив] (http://www.typescriptlang.org/docs/handbook/triple-slash-directives.html) больше не требуется для JavaScript с третьей частью, установленной через npm. Это связано с тем, что папка @types считается видимой компилятору. –

+0

Для файлов декларации, которые вы создаете для внутренних модулей, просто помещая их в одну и ту же папку или в родительскую папку, компилятор подберет ее. Однако рекомендуется использовать tsconfig.json, который позволяет определять globs (например: src/**/*), который сообщает компилятору, что он включает все поддерживаемые файлы машинописных файлов. –