diff options
Diffstat (limited to 'ru-ru')
| -rw-r--r-- | ru-ru/d-ru.html.markdown | 2 | ||||
| -rw-r--r-- | ru-ru/java-ru.html.markdown | 46 | ||||
| -rw-r--r-- | ru-ru/markdown-ru.html.markdown | 8 | ||||
| -rw-r--r-- | ru-ru/php-ru.html.markdown | 55 | ||||
| -rw-r--r-- | ru-ru/tmux-ru.html.markdown | 252 | ||||
| -rw-r--r-- | ru-ru/typescript-ru.html.markdown | 173 | 
6 files changed, 496 insertions, 40 deletions
| diff --git a/ru-ru/d-ru.html.markdown b/ru-ru/d-ru.html.markdown index 162ec4c8..bfa3f085 100644 --- a/ru-ru/d-ru.html.markdown +++ b/ru-ru/d-ru.html.markdown @@ -1,5 +1,5 @@  --- -language: d +language: D  filename: learnd-ru.d  contributors:      - ["Anton Pastukhov", "http://dprogramming.ru/"] diff --git a/ru-ru/java-ru.html.markdown b/ru-ru/java-ru.html.markdown index b24ad555..a1a5cdfc 100644 --- a/ru-ru/java-ru.html.markdown +++ b/ru-ru/java-ru.html.markdown @@ -9,7 +9,7 @@ filename: LearnJavaRu.java  lang: ru-ru  --- -Java - это объектно ориентированный язык программирования общего назначения, +Java - это объектно-ориентированный язык программирования общего назначения,  основанный на классах и поддерживающий параллельное программирование.  [Подробнее читайте здесь.](http://docs.oracle.com/javase/tutorial/java/index.html) @@ -43,17 +43,41 @@ public class LearnJavaRu {              " Double: " + 3.14 +              " Boolean: " + true); -        // Чтобы напечатать что-либо не заканчивая переводом строки -        // используется System.out.print. +        // Чтобы печатать что-либо, не заканчивая переводом строки, +        // используйте System.out.print.          System.out.print("Hello ");          System.out.print("World"); +        // Используйте System.out.printf() для печати с форматированием +        System.out.printf("pi = %.5f", Math.PI); // => pi = 3.14159          /////////////////////////////////////// -        // Типы и Переменные +        // Переменные          /////////////////////////////////////// +        /* +        *  Объявление переменных +        */          // Переменные объявляются с использованием <тип> <имя> +        int fooInt; +        // Одновременное объявление нескольких переменных одного типа +        // <type> <name1>, <name2>, <name3> +        int fooInt1, fooInt2, fooInt3; + +        /* +        *  Инициализация переменных +        */ + +        // объявление и инициализация переменной <type> <name> = <val> +        int fooInt = 1; +        int fooInt1, fooInt2, fooInt3; +        // инициализация нескольких переменных одного типа +        // <type> <name1>, <name2>, <name3> = <val> +        fooInt1 = fooInt2 = fooInt3 = 1; + +        /* +        *  Типы переменных +        */          // Byte - 8-битное целое число.          // (-128 <= byte <= 127)          byte fooByte = 100; @@ -247,7 +271,7 @@ public class LearnJavaRu {          // Switch Case          // switch работает с типами byte, short, char и int.          // Также он работает с перечислениями, -        // классом String и с некоторыми классами-обертками над +        // классом String (с Java 7) и с некоторыми классами-обертками над          // примитивными типами: Character, Byte, Short и Integer.          int month = 3;          String monthString; @@ -319,7 +343,7 @@ public class LearnJavaRu {          System.out.println("trek info: " + trek.toString());      } // Конец метода main. -} // Конец класса LearnJava. +} // Конец класса LearnJavaRu.  // Вы можете включать другие, не публичные классы в .java файл. @@ -362,7 +386,7 @@ class Bicycle {      // Классы в Java часто реализуют сеттеры и геттеры для своих полей.      // Синтаксис определения метода: -    // <модификатор> <тип возвращаемого значения> <имя>(<аргументы>) +    // <модификатор доступа> <тип возвращаемого значения> <имя метода>(<аргументы>)      public int getCadence() {          return cadence;      } @@ -424,10 +448,10 @@ class PennyFarthing extends Bicycle {  // Интерфейсы  // Синтаксис определения интерфейса:  -// <модификатор доступа> interface <имя> extends <базовый интерфейс> { -//        // Константы -//        // Определение методов. -//} +// <модификатор доступа> interface <имя интерфейса> extends <базовый интерфейс> { +//     // Константы +//     // Определение методов +// }  // Пример - Еда:  public interface Edible { diff --git a/ru-ru/markdown-ru.html.markdown b/ru-ru/markdown-ru.html.markdown index eb8e4881..c41e9676 100644 --- a/ru-ru/markdown-ru.html.markdown +++ b/ru-ru/markdown-ru.html.markdown @@ -61,7 +61,7 @@ __И этот тоже.__  **_И тут!_**  *__И даже здесь!__* -<!-- В Github Flavored Markdown (версии Markdown, использующейся в Github, +<!-- В GitHub Flavored Markdown (версии Markdown, использующейся в GitHub,  для рендеринга Markdown-документов) текст можно сделать зачёркнутым: -->  ~~Зачёркнутый текст.~~ @@ -157,7 +157,7 @@ __И этот тоже.__  Например, можно выделить имя функции `go_to()` прямо посреди текста. -<!-- Github Flavored Markdown позволяет указать для блока кода синтаксис оного. +<!-- GitHub Flavored Markdown позволяет указать для блока кода синтаксис оного.  В этом случае синтаксис внутри блока будет подсвечен. Пример: -->  \`\`\`ruby <!-- Только нужно будет убрать символы "\", оставив лишь "```ruby" --> @@ -167,7 +167,7 @@ end  \`\`\` <!-- И здесь тоже backslashes нужно убрать, т.е. оставить "```" -->  <-- Обратите внимание: фрагмент, указанный выше, не предваряется отступами, -поскольку Github сам в состоянии определить границы блока - по строкам "```" --> +поскольку GitHub сам в состоянии определить границы блока - по строкам "```" -->  <!-- Горизонтальный разделитель (<hr />) -->  <!-- Разделители добавляются вставкой строки из трёх и более @@ -253,7 +253,7 @@ end  \*текст, заключённый в звёздочки!\*  <!-- Таблицы --> -<!-- Таблицы официально поддерживаются только в Github Flavored Markdown, +<!-- Таблицы официально поддерживаются только в GitHub Flavored Markdown,  да и синтаксис имеют не слишком удобный.  Но если очень нужно, размечайте таблицы так: --> diff --git a/ru-ru/php-ru.html.markdown b/ru-ru/php-ru.html.markdown index 37b6a86e..d17f24fc 100644 --- a/ru-ru/php-ru.html.markdown +++ b/ru-ru/php-ru.html.markdown @@ -32,7 +32,7 @@ print('Hello '); // Напечатать "Hello " без перевода стр  // () необязательно применять для print и echo  echo "World\n"; // Напечатать "World" и перейти на новую строку. -// (все утверждения должны заканчиваться ;) +// (все утверждения должны заканчиваться точкой с запятой)  // Любые символы за пределами закрывающего тега выводятся автоматически:  ?> @@ -45,8 +45,8 @@ Hello World Again!   */  // Переменные начинаются с символа $. -// Правильное имя переменной начинается с буквы или знака подчеркивания, -// и может содержать любые цифры, буквы, или знаки подчеркивания. +// Правильное имя переменной начинается с буквы или символа подчеркивания, +// за которым следует любое количество букв, цифр или символов подчеркивания.  // Не рекомендуется использовать кириллические символы в именах (прим. пер.)  // Логические значения нечувствительны к регистру @@ -55,7 +55,7 @@ $boolean = false; // или FALSE или False  // Целые числа  $int1 = 12;   // => 12 -$int2 = -12;  // => -12- +$int2 = -12;  // => -12  $int3 = 012;  // => 10 (ведущий 0 обозначает восьмеричное число)  $int4 = 0x0F; // => 15 (ведущие символы 0x означают шестнадцатеричное число) @@ -87,7 +87,7 @@ $dbl_quotes = "This is a $sgl_quotes."; // => 'This is a $String.'  $escaped   = "This contains a \t tab character.";  $unescaped = 'This just contains a slash and a t: \t'; -// Заключайте переменные в фигурные скобки если это необходимо +// Заключайте переменные в фигурные скобки, если это необходимо  $money = "I have $${number} in the bank.";  // Начиная с PHP 5.3, синтаксис nowdocs может использоваться для @@ -106,6 +106,9 @@ END;  // Строки соединяются при помощи .  echo 'This string ' . 'is concatenated'; +// echo можно передавать строки как параметры +echo 'Multiple', 'Parameters', 'Valid'; // печатает 'MultipleParametersValid' +  /********************************   * Константы @@ -114,18 +117,19 @@ echo 'This string ' . 'is concatenated';  // Константа определяется при помощи define()  // и никогда не может быть изменена во время выполнения программы! -// Правильное имя константы начинается с буквы или символа подчеркивания, -// и содержит любое колличество букв, цифр и знаков подчеркивания. +// Правильное имя константы начинается с буквы или символа подчеркивания +// и содержит любое колличество букв, цифр или символов подчеркивания.  define("FOO", "something"); -// Доступ к константе возможен через прямое указание её имени -echo 'This outputs '.FOO; +// Доступ к константе возможен через прямое указание её имени без знака $ +echo FOO; // печатает 'something' +echo 'This outputs ' . FOO; // печатает 'This ouputs something'  /********************************   * Массивы   */ -// Все массивы в PHP - это ассоциативные массивы или хеши, +// Все массивы в PHP - это ассоциативные массивы  // Ассоциативные массивы, известные в других языках как HashMap. @@ -189,7 +193,7 @@ $b = '0';  $c = '1';  $d = '1'; -// Утверждение (assert) выдает предупреждение если аргумент не true +// Утверждение (assert) выдает предупреждение, если его аргумент не true  // Эти сравнения всегда будут истинными, даже если типы будут различаться  assert($a == $b); // "равно" @@ -284,35 +288,35 @@ This is displayed otherwise.  // Использование switch.  switch ($x) {      case '0': -        print 'Switch does type coercion'; -        break; // You must include a break, or you will fall through -               // to cases 'two' and 'three' +        print 'Switch использует неточное сравнение'; +        break; // вы должны использовать break, иначе PHP будет продолжать +               // исполнять команды следующих секций case 'two' и 'three'      case 'two':      case 'three': -        // Do something if $variable is either 'two' or 'three' +        // делаем что-то, если $x == 'two' или $x == 'three'          break;      default: -        // Do something by default +        // делаем что-то по умолчанию  }  // Циклы: while, do...while и for  $i = 0;  while ($i < 5) {      echo $i++; -}; // Prints "01234" +}; // печатает "01234"  echo "\n";  $i = 0;  do {      echo $i++; -} while ($i < 5); // Prints "01234" +} while ($i < 5); // печатает "01234"  echo "\n";  for ($x = 0; $x < 10; $x++) {      echo $x; -} // Напечатает "0123456789" +} // печатает "0123456789"  echo "\n"; @@ -335,17 +339,17 @@ echo "\n";  $i = 0;  while ($i < 5) {      if ($i === 3) { -        break; // Exit out of the while loop +        break; // выйти из цикла while      }      echo $i++;  } // Напечатает "012"  for ($i = 0; $i < 5; $i++) {      if ($i === 3) { -        continue; // Skip this iteration of the loop +        continue; // пропустить текущую итерацию цикла      }      echo $i; -} // Напечатает "0124" +} // печатает "0124"  /******************************** @@ -360,7 +364,7 @@ function my_function () {  echo my_function(); // => "Hello"  // Правильное имя функции начинается с буквы или символа подчеркивания -// и состоит из букв, цифр или знаков подчеркивания. +// и состоит из букв, цифр или символов подчеркивания.  function add ($x, $y = 1) { // $y по умолчанию равно 1    $result = $x + $y; @@ -656,7 +660,10 @@ $cls = new SomeOtherNamespace\MyClass();  ```  ## Смотрите также: -Посетите страницу [официальной документации PHP](http://www.php.net/manual/) для справки.  +Посетите страницу [официальной документации PHP](http://www.php.net/manual/) для справки. +  Если вас интересуют полезные приемы использования PHP посетите [PHP The Right Way](http://www.phptherightway.com/). +  Если вы раньше пользовались языком с хорошей организацией пакетов, посмотрите [Composer](http://getcomposer.org/). +  Для изучения стандартов использования языка посетите PHP Framework Interoperability Group's [PSR standards](https://github.com/php-fig/fig-standards).  diff --git a/ru-ru/tmux-ru.html.markdown b/ru-ru/tmux-ru.html.markdown new file mode 100644 index 00000000..aa7545cc --- /dev/null +++ b/ru-ru/tmux-ru.html.markdown @@ -0,0 +1,252 @@ +--- +category: tool +tool: tmux +contributors: +  - ["mdln", "https://github.com/mdln"] +translators: +  - ["Davydov Anton", "https://github.com/davydovanton"] +filename: LearnTmux-ru.txt +lang: ru-ru +--- + +[tmux](http://tmux.sourceforge.net) - терминальный мультиплексор. +Он позволяет создавать, получать доступ и контролировать любое +количество терминалов из единого окна. +Сессия tmux также может быть свернута в фоновый режим, и она +будет работать в фоне, а после к ней можно будет подключиться. + + +``` + +  tmux [command]     # Запуск команды 'tmux' +                     # без какой-либо команды создаст новую сессию + +    new              # Создать новую сессию +     -s "Session"    # Создать именованную сессию +     -n "Window"     # Создать именованное окно +     -c "/dir"       # Запустить сессию в конкретной директории + +    attach           # Подключиться к последней/существующей сессии +     -t "№"          # Подключиться к определенной сессии +     -d              # Завершить определенную сессию + +    ls               # Список открытых сессий +     -a              # Список всех открытых сессий + +    lsw              # Список окон +     -a              # Список всех окон +     -s              # Список всех окон в сессии + +    lsp              # Список панелей +     -a              # Список всех панелей +     -s              # Список всех панелей в сессии +     -t              # Список всех панелей для конкретного объекта + +    kill-window      # Закрыть текущее окно +     -t "#"          # Закрыть конкретное окно +     -a              # Закрыть все окна +     -a -t "#"       # Закрыть все окна, кроме конкретного + +    kill-session     # Завершить текущую сессию +     -t "#"          # Завершить конкретную сессию +     -a              # Завершить все сессии +     -a -t "#"       # Завершить все сессии, кроме конкретной + +``` + + +### "Горячие" клавиши + +Способ, с помощью которого контролируется любая tmux +сессия, - комбинация клавиш, называемая 'Префиксом'. + +``` +---------------------------------------------------------------------- +  (C-b) = Ctrl + b    # 'Префикс' необходим для +                      # использования горячих клавиш + +  (M-1) = Meta + 1 -или- Alt + 1 +---------------------------------------------------------------------- + +  ?                    # Список всех горячих клавиш +  :                    # Начать ввод в командной строке tmux +  r                    # Принудительная перерисовка текущего клиента +  c                    # Создать новое окно + +  !                    # Переместить текущую панель в отдельное окно +  %                    # Разделить текущую панель на две: левую и правую +  "                    # Разделить текущую панель на две: верхнюю и нижнюю + +  n                    # Переместиться на следующее окно +  p                    # Переместиться на предыдущее окно +  {                    # Заменить текущую панель на предыдущую +  }                    # Заменить текущую панель на следующую + +  s                    # Интерактивный выбор запущенных сессий +  w                    # Интерактивный выбор текущего окна +  от 0 до 9            # Выбрать окно номер 0..9 + +  d                    # Отключить текущий клиент +  D                    # Выбрать клиент, который будет отключен + +  &                    # Закрыть текущее окно +  x                    # Закрыть текущую панель + +  Стрелки вверх, вниз  # Переместиться на панель выше, ниже, левее +  влево, вправо        # или правее + +  M-1 to M-5           # Расставить панели: +                         # 1) выровнять по горизонтали +                         # 2) выровнять по вертикали +                         # 3) основное горизонтально +                         # 4) основное вертикально +                         # 5) мозаикой + +  C-Up, C-Down         # Изменение размера текущей панели с шагом в одну +  C-Left, C-Right      # колонку + +  M-Up, M-Down         # Изменение размера текущей панели с шагом в пять +  M-Left, M-Right      # колонок + +``` + + +### Настройка ~/.tmux.conf + +Файл tmux.conf может быть использован для автоматической установки +опций при старте, как, например, .vimrc или init.el. + +``` +# Пример файла tmux.conf +# 2014.10 + + +### Общее +########################################################################### + +# Включить поддержку UTF-8 +setw -g utf8 on +set-option -g status-utf8 on + +# Установить лимит истории +set -g history-limit 2048 + +# Порядковый номер первой панели +set -g base-index 1 + +# Включить поддержку мыши +set-option -g mouse-select-pane on + +# Принудительная перезагрузка конфигурационного файла +unbind r +bind r source-file ~/.tmux.conf + + +### Горячие клавиши +########################################################################### + +# Отменить комбинацию C-b как стандартный префикс +unbind C-b + +# Установить новую комбинацию как префикс +set-option -g prefix ` + +# Вернуть предыдущее окно, если префикс был нажат два раза +bind C-a last-window +bind ` last-window + +# Разрешить замену C-a и ` на F11/F12 +bind F11 set-option -g prefix C-a +bind F12 set-option -g prefix ` + +# Настройки клавиш +setw -g mode-keys vi +set-option -g status-keys vi + +# Перемещение между панелями, как в vim +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# Переключить/Заменить окно +bind e previous-window +bind f next-window +bind E swap-window -t -1 +bind F swap-window -t +1 + +# Комманды, упрощающие разделением панелей +bind = split-window -h +bind - split-window -v +unbind '"' +unbind % + +# Активировать центральную сессию (когда вложенный tmux) для отправки команд +bind a send-prefix + + +### Цветовая схема +########################################################################### + +# Цветовая палитра строки состояния +set-option -g status-justify left +set-option -g status-bg black +set-option -g status-fg white +set-option -g status-left-length 40 +set-option -g status-right-length 80 + +# Цветовая палитра окантовки панели +set-option -g pane-active-border-fg green +set-option -g pane-active-border-bg black +set-option -g pane-border-fg white +set-option -g pane-border-bg black + +# Цветовая палитра сообщений +set-option -g message-fg black +set-option -g message-bg green + +# Цветовая палитра статус окна +setw -g window-status-bg black +setw -g window-status-current-fg green +setw -g window-status-bell-attr default +setw -g window-status-bell-fg red +setw -g window-status-content-attr default +setw -g window-status-content-fg yellow +setw -g window-status-activity-attr default +setw -g window-status-activity-fg yellow + + +### Интерфейс +########################################################################### + +# Уведомления +setw -g monitor-activity on +set -g visual-activity on +set-option -g bell-action any +set-option -g visual-bell off + +# Автоматическая установка заголовка окна +set-option -g set-titles on +set-option -g set-titles-string '#H:#S.#I.#P #W #T' # window number,program name,active (or not) + +# Настройки строки состояния +set -g status-left "#[fg=red] #H#[fg=green]:#[fg=white]#S#[fg=green] |#[default]" + +# Показывать системные характеристики в статусбаре +# Требует https://github.com/thewtex/tmux-mem-cpu-load/ +set -g status-interval 4 +set -g status-right "#[fg=green] | #[fg=white]#(tmux-mem-cpu-load)#[fg=green] | #[fg=cyan]%H:%M #[default]" + +``` + +### Ссылки + +[Tmux | Домашняя страница](http://tmux.sourceforge.net) + +[Страница мануала Tmux](http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1?query=tmux) + +[Gentoo Wiki](http://wiki.gentoo.org/wiki/Tmux) + +[Archlinux Wiki](https://wiki.archlinux.org/index.php/Tmux) + +[Отображение CPU/MEM % в статусбаре](https://stackoverflow.com/questions/11558907/is-there-a-better-way-to-display-cpu-usage-in-tmux) diff --git a/ru-ru/typescript-ru.html.markdown b/ru-ru/typescript-ru.html.markdown new file mode 100644 index 00000000..67b58a38 --- /dev/null +++ b/ru-ru/typescript-ru.html.markdown @@ -0,0 +1,173 @@ +--- +language: TypeScript +lang: ru-ru +contributors: +    - ["Philippe Vlérick", "https://github.com/pvlerick"] +translators: +    - ["Fadil Mamedov", "https://github.com/fadilmamedov"] +    - "Andre Polykanine", "https://github.com/Oire"] +filename: learntypescript-ru.ts +--- + +TypeScript — это язык программирования, целью которого является лёгкая разработка широкомасштабируемых JavaScript-приложений. +TypeScript добавляет в Javascript общие концепции, такие, как классы, модули, интерфейсы, обобщённое программирование и (опционально) статическую типизацию.   +Это надмножество языка JavaScript: весь JavaScript-код является валидным TypeScript-кодом, следовательно, может быть добавлен бесшовно в любой проект.  +Компилятор TypeScript генерирует JavaScript-код. + +Эта статья концентрируется только на синтаксисе TypeScript, в противовес статье о [JavaScript](javascript-ru/). + +Для тестирования компилятора TypeScript пройдите по ссылке в [песочницу](http://www.typescriptlang.org/Playground).  +Там вы можете написать код (с поддержкой автодополнения) и сразу же увидеть сгенерированный JavaScript код. + +```js +// В TypeScript есть 3 базовых типа +var isDone: boolean = false; +var lines: number = 42; +var name: string = "Андерс"; + +// Тип «any» для случаев, когда заранее неизвестен тип переменной +var notSure: any = 4; +notSure = "а может быть, строка"; +notSure = false; // а теперь логический тип + +// Для коллекций есть типизированные массивы и обобщённые массивы +var list: number[] = [1, 2, 3]; +// Как альтернатива, использование обобщённого массива +var list: Array<number> = [1, 2, 3]; + +// Перечисления: +enum Color {Red, Green, Blue}; +var c: Color = Color.Green; + +// Наконец, «void» используется для обозначения того, что функция ничего не возвращает +function bigHorribleAlert(): void { +  alert("Я маленькое надоедливое окошко!"); +} + +// Функции — это объекты первого класса. Они поддерживают лямбда-синтаксис (=>) +// и используют вывод типов (type inference) + +// Следующие строки кода являются эквивалентными, компилятором предполагается +// одинаковая сигнатура, на выходе генерируется одинаковый JavaScript-код +var f1 = function(i: number): number { return i * i; } +// Предполагается возвращаемый тип +var f2 = function(i: number) { return i * i; } +var f3 = (i: number): number => { return i * i; } +// Предполагается возвращаемый тип +var f4 = (i: number) => { return i * i; } +// Предполагается возвращаемый тип, в однострочной функции ключевое слово «return» не нужно +var f5 = (i: number) =>  i * i; + +// Интерфейсы являются структурными; всё, что имеет свойства, совместимо с интерфейсом +interface Person { +  name: string; +  // Опциональные свойства, помеченные символом «?» +  age?: number; +  // И, конечно, функции +  move(): void; +} + +// Объект, который реализует интерфейс «Person» +// К нему можно обращаться, как к «Person», так как он имеет свойства «name» и «move» +var p: Person = { name: "Бобби", move: () => {} }; +// Объекты, которые могут иметь опциональные свойства: +var validPerson: Person = { name: "Бобби", age: 42, move: () => {} }; +// Это не «Person», поскольку «age» не является числовым значением +var invalidPerson: Person = { name: "Бобби", age: true }; + +// Интерфейсы могут также описывать функциональный тип +interface SearchFunc { +  (source: string, subString: string): boolean; +} +// Важны только типы параметров, имена — нет. +var mySearch: SearchFunc; +mySearch = function(src: string, sub: string) { +  return src.search(sub) != -1; +} + +// Классы. Члены класса по умолчанию являются публичными +class Point { +  	// Свойства +    x: number; + +    // Конструктор — ключевые слова public/private в данном контексте сгенерируют +    // шаблонный код для свойства и для инициализации в конструкторе +    // В данном примере «y» будет определён так же, как и «x», но меньшим количеством кода +    // Значения по умолчанию также поддерживаются + +    constructor(x: number, public y: number = 0) { +        this.x = x; +    } + +    // Функции +    dist() { return Math.sqrt(this.x * this.x + this.y * this.y); } + +    // Статические члены +    static origin = new Point(0, 0); +} + +var p1 = new Point(10 ,20); +var p2 = new Point(25); //y будет равен 0 + +// Наследование +class Point3D extends Point { +    constructor(x: number, y: number, public z: number = 0) { +        super(x, y); // Явный вызов конструктора базового класса обязателен +    } + +    // Перегрузка +    dist() { +        var d = super.dist(); +        return Math.sqrt(d * d + this.z * this.z); +    } +} + +// Модули, знак «.» может быть использован как разделитель для обозначения подмодулей +module Geometry { +  export class Square { +    constructor(public sideLength: number = 0) { +    } +    area() { +      return Math.pow(this.sideLength, 2); +    } +  } +} + +var s1 = new Geometry.Square(5); + +// Локальный псевдоним для ссылки на модуль +import G = Geometry; + +var s2 = new G.Square(10); + +// Обобщённое программирование +// Классы +class Tuple<T1, T2> { +    constructor(public item1: T1, public item2: T2) { +    } +} + +// Интерфейсы +interface Pair<T> { +    item1: T; +    item2: T; +} + +// И функции +var pairToTuple = function<T>(p: Pair<T>) { +    return new Tuple(p.item1, p.item2); +}; + +var tuple = pairToTuple({ item1:"hello", item2:"world"}); + +// Включение ссылки на файл определения: +/// <reference path="jquery.d.ts" /> + +``` + +## Для дальнейшего чтения + * [Официальный веб-сайт TypeScript](http://www.typescriptlang.org/) + * [Спецификация языка TypeScript (pdf)](http://go.microsoft.com/fwlink/?LinkId=267238) + * [Anders Hejlsberg — Introducing TypeScript на Channel 9](http://channel9.msdn.com/posts/Anders-Hejlsberg-Introducing-TypeScript) + * [Исходный код на GitHub](https://github.com/Microsoft/TypeScript) + * [Definitely Typed — репозиторий определений типов](http://definitelytyped.org/) | 
