diff options
| -rw-r--r-- | ru-ru/typescript-ru.html.markdown | 78 | 
1 files changed, 40 insertions, 38 deletions
| diff --git a/ru-ru/typescript-ru.html.markdown b/ru-ru/typescript-ru.html.markdown index fe1653ff..67b58a38 100644 --- a/ru-ru/typescript-ru.html.markdown +++ b/ru-ru/typescript-ru.html.markdown @@ -2,95 +2,97 @@  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-приложений. +TypeScript добавляет в Javascript общие концепции, такие, как классы, модули, интерфейсы, обобщённое программирование и (опционально) статическую типизацию.   +Это надмножество языка JavaScript: весь JavaScript-код является валидным TypeScript-кодом, следовательно, может быть добавлен бесшовно в любой проект.  +Компилятор TypeScript генерирует JavaScript-код. -Эта статья концентрируется только на синтаксисе TypeScript, в противовес статьте о [JavaScript](../javascript/). +Эта статья концентрируется только на синтаксисе TypeScript, в противовес статье о [JavaScript](javascript-ru/). -Для тестирования компилятора TypeScript, пройдите по ссылке в [песочницу](http://www.typescriptlang.org/Playground).  +Для тестирования компилятора TypeScript пройдите по ссылке в [песочницу](http://www.typescriptlang.org/Playground).   Там вы можете написать код (с поддержкой автодополнения) и сразу же увидеть сгенерированный JavaScript код.  ```js  // В TypeScript есть 3 базовых типа  var isDone: boolean = false;  var lines: number = 42; -var name: string = "Anders"; +var name: string = "Андерс"; -// Тип "Any" для случаев, когда заранее неизвестен тип переменной +// Тип «any» для случаев, когда заранее неизвестен тип переменной  var notSure: any = 4; -notSure = "maybe a string instead"; +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" используется для обозначения того, что функция ничего не возвращает +// Наконец, «void» используется для обозначения того, что функция ничего не возвращает  function bigHorribleAlert(): void { -  alert("I'm a little annoying box!"); +  alert("Я маленькое надоедливое окошко!");  } -// Функции - это первый члены класса. Они поддерживают лябмда-синтаксис (=>) -// и используют интерфейс типа +// Функции — это объекты первого класса. Они поддерживают лямбда-синтаксис (=>) +// и используют вывод типов (type inference) -// Следующий строки кода являются эквивалентными, компилятором предполагается -// одинаковая сигнатура, на выходе генерируется одинаковый JavaScript код +// Следующие строки кода являются эквивалентными, компилятором предполагается +// одинаковая сигнатура, на выходе генерируется одинаковый 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 type inferred, one-liner means no return keyword needed -// Предполагается возвращаемый тип, ключевое слово "return" не нужно +// Предполагается возвращаемый тип, в однострочной функции ключевое слово «return» не нужно  var f5 = (i: number) =>  i * i; -// Интерфейсы являются структурными; все, что имеет свойства совместимо в интерфейсом +// Интерфейсы являются структурными; всё, что имеет свойства, совместимо с интерфейсом  interface Person {    name: string; -  // Опциональные свойства, помеченные символом "?" +  // Опциональные свойства, помеченные символом «?»    age?: number; -  // И конечно функции +  // И, конечно, функции    move(): void;  } -// Объект, который реализует интерфейс "Person" -// К нему можно обращаться как к "Person", так как он имеет свойства "name" и "move" -var p: Person = { name: "Bobby", move: () => {} }; +// Объект, который реализует интерфейс «Person» +// К нему можно обращаться, как к «Person», так как он имеет свойства «name» и «move» +var p: Person = { name: "Бобби", move: () => {} };  // Объекты, которые могут иметь опциональные свойства: -var validPerson: Person = { name: "Bobby", age: 42, move: () => {} }; -// Это не "Person", поскольку "age" не является числовым значением -var invalidPerson: Person = { name: "Bobby", age: true }; +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 в данном контексте сгенерируют +    // Конструктор — ключевые слова public/private в данном контексте сгенерируют      // шаблонный код для свойства и для инициализации в конструкторе -    // В данном примере, "y" будет определен также как и "x", но меньшим количеством кода +    // В данном примере «y» будет определён так же, как и «x», но меньшим количеством кода      // Значения по умолчанию также поддерживаются      constructor(x: number, public y: number = 0) { @@ -105,7 +107,7 @@ class Point {  }  var p1 = new Point(10 ,20); -var p2 = new Point(25); //y will be 0 +var p2 = new Point(25); //y будет равен 0  // Наследование  class Point3D extends Point { @@ -120,7 +122,7 @@ class Point3D extends Point {      }  } -// Модули, "." может быть использован как разделитель для обозначения подмодулей +// Модули, знак «.» может быть использован как разделитель для обозначения подмодулей  module Geometry {    export class Square {      constructor(public sideLength: number = 0) { @@ -138,7 +140,7 @@ import G = Geometry;  var s2 = new G.Square(10); -// Дженерики +// Обобщённое программирование  // Классы  class Tuple<T1, T2> {      constructor(public item1: T1, public item2: T2) { @@ -166,6 +168,6 @@ var tuple = pairToTuple({ item1:"hello", item2:"world"});  ## Для дальнейшего чтения   * [Официальный веб-сайт 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) + * [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/) + * [Definitely Typed — репозиторий определений типов](http://definitelytyped.org/) | 
