typescript
GitHub
  • README
  • Давайте Почнемо
    • Why TypeScript
  • JavaScript
    • Equality
    • References
    • Null vs. Undefined
    • this
    • Closure
    • Number
    • Truthy
  • Future JavaScript Now
    • Classes
      • Classes Emit
    • Arrow Functions
    • Rest Parameters
    • let
    • const
    • Destructuring
    • Spread Operator
    • for...of
    • Iterators
    • Template Strings
    • Promise
    • Generators
    • Async Await
  • Проект / Project
    • Контекст компіляції / Compilation Context
      • tsconfig.json
      • Які файли / Which Files?
    • Простори Оголошень / Declaration Spaces
    • Модулі / Modules
      • File Module Details
      • global.d.ts
    • Namespaces
    • Dynamic Import Expressions
  • Node.js QuickStart
  • Browser QuickStart
  • Library QuickStart
  • TypeScript's Type System
    • JS Migration Guide
    • @types
    • Ambient Declarations
      • Declaration Files
      • Variables
    • Interfaces
    • Enums
    • lib.d.ts
    • Functions
    • Callable
    • Type Assertion
    • Freshness
    • Type Guard
    • Literal Types
    • Readonly
    • Generics
    • Type Inference
    • Type Compatibility
    • Never Type
    • Discriminated Unions
    • Index Signatures
    • Moving Types
    • Exception Handling
    • Mixins
  • JSX
    • React
    • Non React JSX
  • Options
    • noImplicitAny
    • strictNullChecks
  • Errors in TypeScript
    • Interpreting Errors
    • Common Errors
  • NPM
  • Testing
    • Jest
    • Cypress
  • Tools
    • Prettier
    • Husky
    • ESLint
    • Changelog
  • TIPs
    • String Based Enums
    • Nominal Typing
    • Stateful Functions
    • Currying
    • Type Instantiation
    • Lazy Object Literal Initialization
    • Classes are Useful
    • Avoid Export Default
    • Limit Property Setters
    • outFile caution
    • JQuery tips
    • static constructors
    • singleton pattern
    • Function parameters
    • Build Toggles
    • Barrel
    • Create Arrays
    • Typesafe Event Emitter
  • StyleGuide
  • TypeScript Compiler Internals
    • Program
    • AST
      • TIP: Visit Children
      • TIP: SyntaxKind enum
      • Trivia
    • Scanner
    • Parser
      • Parser Functions
    • Binder
      • Binder Functions
      • Binder Declarations
      • Binder Container
      • Binder SymbolTable
      • Binder Error Reporting
    • Checker
      • Checker Diagnostics
      • Checker Error Reporting
    • Emitter
      • Emitter Functions
      • Emitter SourceMaps
    • Contributing
Powered by GitBook
On this page
  • Using @types
  • Global @types
  • Module @types
  • Controlling Globals
Edit on GitHub
  1. TypeScript's Type System

@types

PreviousJS Migration GuideNextAmbient Declarations

Last updated 1 year ago

безумовно, є однією з найбільших переваг TypeScript. Спільнота фактично пішла вперед і documented майже 90% найкращих проектів JavaScript.

Це означає, що ви можете використовувати ці проекти в дуже інтерактивний та дослідницький спосіб, не потрібно відкривати документи в окремому вікні та стежити за тим, щоб ви не зробили помилки.

Using @types

Встановлення досить просте, оскільки воно працює поверх npm. Отже, як приклад, ви можете встановити визначення типу дляjquery просто так:

npm install @types/jquery --save-dev

@types підтримує визначення типів global i module.

Global @types

За замовчуванням усі визначення, які підтримують глобальне споживання, включаються автоматично. наприклад дляjquery ви повинні мати можливість просто почати використовувати $ globally у своєму проекті.

Однак для libraries (наприклад jquery) я зазвичай рекомендую використовувати modules:

Module @types

Після інсталяції не потрібна спеціальна конфігурація. Ви просто використовуєте його як модуль, наприклад:

import * as $ from "jquery";

// Use $ at will in this module :)

Controlling Globals

Як видно, наявність визначення, яке автоматично допускає глобальний витік, може бути проблемою для деяких команд. Тож ви можете вибрати explicitly лише введення типів, які мають сенс за допомогою tsconfig.json compilerOptions.types наприклад:

{
    "compilerOptions": {
        "types" : [
            "jquery"
        ]
    }
}

Вище показано зразок, де дозволено використовувати лише jquery. Навіть якщо особа встановить інше визначення, наприклад npm install @types/node його глобальні значення (наприклад,)не просочуватимуться у ваш код, доки ви не додасте їх до опції типів tsconfig.json.

Definitely Typed
process