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
  • Global Module
  • File Module
Edit on GitHub
  1. Проект / Project

Модулі / Modules

Global Module

За замовчуванням, коли ви починаєте вводити код у новому файлі TypeScript, ваш код знаходиться в глобальному просторі імен. Як демонстрацію розглянемо файл foo.ts:

var foo = 123;

Якщо ви тепер створите новий файл bar.ts у тому самому проекті, вам буде дозволено системою типів TypeScript використовувати змінну foo так, якби вона була доступна глобально:

var bar = foo; // allowed

Зайве говорити, що мати глобальний простір імен небезпечно, оскільки це відкриває ваш код для конфліктів імен. Ми рекомендуємо використовувати файлові модулі, які представлені далі.

File Module

Також називаються зовнішніми модулями. Якщо у вас є «імпорт» або «експорт» на кореневому рівні файлу TypeScript, тоді в цьому файлі створюється локальна область. Отже, якщо ми змінимо попередній foo.ts на такий (зверніть увагу на використання export):

export var foo = 123;

Ми більше не матимемо foo у глобальному просторі імен. Це можна продемонструвати, створивши новий файл bar.ts наступним чином:

var bar = foo; // ERROR: "cannot find name 'foo'"

Якщо ви хочете використовувати матеріали з foo.ts у bar.ts вам потрібно явно імпортувати це. Це показано в оновленому bar.ts нижче:

import { foo } from "./foo";
var bar = foo; // allowed

Використання import у bar.ts не тільки дає змогу вводити матеріали з інших файлів, але також позначає файл bar.ts як модуль, а отже, оголошення в bar.ts не також не забруднювати глобальний простір імен.

Те, що JavaScript генерується з даного файлу TypeScript, який використовує зовнішні модулі, керується прапором компілятора під назвою module.

PreviousПростори Оголошень / Declaration SpacesNextFile Module Details

Last updated 1 year ago