fixed machine translation (#23766)

not ideal though
This commit is contained in:
andrhua
2018-11-22 17:02:11 +03:00
committed by Gregory Gubarev
parent 89f0fb411a
commit 71587402e1

View File

@ -1,20 +1,20 @@
--- ---
title: Generics title: Generics
localeTitle: Дженерики localeTitle: Дженерики (параметризованные типы)
--- ---
## Дженерики ## Дженерики
Разработчики могут использовать `Generics` для указания ограничений типов для классов, членов экземпляра, статических членов и функций. Разработчики могут использовать `Generics` для указания ограничений на типы классов, членов экземпляра объекта, статических членов и функций.
### Что делают дженерики? ### Что делают дженерики?
По сути, они служат заполнителями для типов, так что компонент может использоваться в разных местах вашего приложения путем размещения разных типов. По сути, они служат заполнителями для типов; компоненты параметризованного типа могут использоваться в разных местах вашего приложения путем указания разных типов.
### Какая проблема решает? ### Какую проблему решают дженерики?
Предположим, вы хотели убедиться, что входные и возвращаемые значения для функции имеют один и тот же тип, вот где появляются дженерики. Предположим, вы хотите убедиться, что входные и возвращаемые значения для функции имеют один и тот же тип - здесь и появляются дженерики.
##### функции ##### Функции
```typescript ```typescript
function printMessage(arg: any): any { function printMessage(arg: any): any {
@ -25,7 +25,7 @@ function printMessage(arg: any): any {
const myMessage: string = printMessage(1); const myMessage: string = printMessage(1);
``` ```
Как видно из вышеизложенного, передача `any` типа аргумента в функции, а также типа возврата не является идеальной, поскольку информация о типе теряется в процессе. Как видно из вышеизложенного, указание типа `any` у аргумента в функции и возвращемого значения не является идеальным, поскольку теряется информация о типе.
```typescript ```typescript
// updated example // updated example
@ -40,7 +40,7 @@ function printMessage(arg: any): any {
const myMessage: number = printMessage(1); const myMessage: number = printMessage(1);
``` ```
Включение `<T>` с помощью функции сообщает TypeScript, что оно является общим, и передача этого в качестве ссылки заставит TypeScript знать, что связанные с ним значения имеют один и тот же тип. Добавление `<T>` рядом с именем функции сообщает TypeScript, что она является параметризованной, и использование такого синтаксиса функции заставит TypeScript знать, что связанные с ней значения имеют один и тот же тип.
##### Классы ##### Классы
@ -68,4 +68,4 @@ class Person {
// foo will be of type 'guest' because it's being passed in as the argument // foo will be of type 'guest' because it's being passed in as the argument
const foo = getUser(guest); const foo = getUser(guest);
``` ```