From e553cd67574fbd7146f17d06391b572e9619d4b2 Mon Sep 17 00:00:00 2001 From: Gasim Gasimzada Date: Sun, 13 Oct 2019 12:32:16 +0400 Subject: [PATCH 1/4] Partially translate Static Type Checking - Translate Flow - Partially translate Typescript --- content/docs/nav.yml | 2 +- content/docs/static-type-checking.md | 172 ++++++++++++++------------- 2 files changed, 90 insertions(+), 84 deletions(-) diff --git a/content/docs/nav.yml b/content/docs/nav.yml index 67cda7530..4b543dc3c 100644 --- a/content/docs/nav.yml +++ b/content/docs/nav.yml @@ -72,7 +72,7 @@ - id: render-props title: Render Etmə Propları - id: static-type-checking - title: Static Tip Yoxlaması + title: Statik Tip Yoxlamaları - id: strict-mode title: Strict Rejimi - id: typechecking-with-proptypes diff --git a/content/docs/static-type-checking.md b/content/docs/static-type-checking.md index ed35a9503..4c186aac4 100644 --- a/content/docs/static-type-checking.md +++ b/content/docs/static-type-checking.md @@ -1,42 +1,42 @@ --- id: static-type-checking -title: Static Type Checking +title: Statik Tip Yoxlamaları permalink: docs/static-type-checking.html --- -Static type checkers like [Flow](https://flow.org/) and [TypeScript](https://www.typescriptlang.org/) identify certain types of problems before you even run your code. They can also improve developer workflow by adding features like auto-completion. For this reason, we recommend using Flow or TypeScript instead of `PropTypes` for larger code bases. +[Flow](https://flow.org/) və [TypeScript](https://www.typescriptlang.org/) statik tip yoxlayıcıları kod icra olunmamışdan öncə bəzi problemləri tapa bilir. Bu alətlər avtomatik tamamlama kimi xüsusiyyətləri əlavə edərək proqramçı iş axının təkmiləşdirir. Bu səbəbdən, böyük kodlarda `PropTypes` əvəzinə Flow və ya Typescript işlətməyi tövsiyyə edirik. ## Flow {#flow} -[Flow](https://flow.org/) is a static type checker for your JavaScript code. It is developed at Facebook and is often used with React. It lets you annotate the variables, functions, and React components with a special type syntax, and catch mistakes early. You can read an [introduction to Flow](https://flow.org/en/docs/getting-started/) to learn its basics. +[Flow](https://flow.org/) JavaScript kodu üçün statik tip yoxlayıcısıdır. Bu alət Facebook tərəfindən yaradılıb və React ilə çox işlənilir. Bu, sizə dəyişənləri, funksiyaları və React komponentlərini xüsusi tip sintaksisi ilə annotasiya edərək xətaları tez tutmağa imkan yaradır. Əsasları öyrənmək üçün [Flow-a giriş](https://flow.org/en/docs/getting-started/) sənədini oxuya bilərsiniz. -To use Flow, you need to: +Flow-nu işlətmək üçün: -* Add Flow to your project as a dependency. -* Ensure that Flow syntax is stripped from the compiled code. -* Add type annotations and run Flow to check them. +* Flow-nu layihə asılılığı kimi əlavə edin. +* Kompilyasiya edilən kodda Flow sintaksisinin silindiyindən əmin olun. +* Tip annotasiyalarını əlavə edin və Flow-nu çağıraraq bu tipləri yoxlayın. -We will explain these steps below in detail. +Aşağıda bu addımlar detallı başa salınır. -### Adding Flow to a Project {#adding-flow-to-a-project} +### Flow=nu Layihəyə Əlavə Et {#adding-flow-to-a-project} -First, navigate to your project directory in the terminal. You will need to run the following command: +İlk olaraq, terminaldan layihə direktoriyasına naviqasiya edin. Sonra, aşağıdakı əmri icra edin: -If you use [Yarn](https://yarnpkg.com/), run: +[Yarn](https://yarnpkg.com/) işlədirsinizsə: ```bash yarn add --dev flow-bin ``` -If you use [npm](https://www.npmjs.com/), run: +[npm](https://www.npmjs.com/) işlədirsinizsə: ```bash npm install --save-dev flow-bin ``` -This command installs the latest version of Flow into your project. +Bu əmr layihənizə Flow-un ən son versiyasını yükləyir. -Now, add `flow` to the `"scripts"` section of your `package.json` to be able to use this from the terminal: +İndi, `flow` əmrini `package.json` faylının `"scripts"` bölməsinə əlavə edin: ```js{4} { @@ -49,53 +49,53 @@ Now, add `flow` to the `"scripts"` section of your `package.json` to be able to } ``` -Finally, run one of the following commands: +Ən sonda, aşağıdakı əmri icra edin: -If you use [Yarn](https://yarnpkg.com/), run: +[Yarn](https://yarnpkg.com/) işlədirsinizsə: ```bash yarn run flow init ``` -If you use [npm](https://www.npmjs.com/), run: +[npm](https://www.npmjs.com/) işlədirsinizsə: ```bash npm run flow init ``` -This command will create a Flow configuration file that you will need to commit. +Bu əmr Flow konfiqurasiya faylı yaradacaq. Bu faylı reponuza commit edin. -### Stripping Flow Syntax from the Compiled Code {#stripping-flow-syntax-from-the-compiled-code} +### Flow Sintaksisinin Kompilyasiya Olunan Koddan Silinməsi {#stripping-flow-syntax-from-the-compiled-code} -Flow extends the JavaScript language with a special syntax for type annotations. However, browsers aren't aware of this syntax, so we need to make sure it doesn't end up in the compiled JavaScript bundle that is sent to the browser. +Flow, tip annotasiyaları üçün JavaScript dilini xüsusi sintaksis ilə artırır. Lakin, brauzerlərin bu sintaksisdən xəbəri olmadığından bu sintaksisin brauzerə göndərilən, kompilyasiya olunan JavaScript paketində olmadığından əmin olmalıyıq. -The exact way to do this depends on the tools you use to compile JavaScript. +Bunu etməyin yolu JavaScript-i kompilyasiya etmək üçün işlətdiyiniz alətlərdən asılıdır. #### Create React App {#create-react-app} -If your project was set up using [Create React App](https://github.com/facebookincubator/create-react-app), congratulations! The Flow annotations are already being stripped by default so you don't need to do anything else in this step. +Əgər layihəniz [Create React App](https://github.com/facebookincubator/create-react-app) ilə qurulubsa, təbrik edirik! Flow annotasiyaları kompilyasiya zamanı silindiyindən heç nə etmək lazım deyil. #### Babel {#babel} ->Note: +>Qeyd: > ->These instructions are *not* for Create React App users. Even though Create React App uses Babel under the hood, it is already configured to understand Flow. Only follow this step if you *don't* use Create React App. +>Bu təlimatlar Create React App istifadəçiləri üçün *nəzərdə tutulmayıb*. Create React App-in Babel işlətdiyinə baxmayaraq Flow-nu anlaması artıq konfiqurasiya olunub. Yalnız Create React App *işlətmədikdə* bu bölmədə olan təlimatları təqib edin. -If you manually configured Babel for your project, you will need to install a special preset for Flow. +Layihəyə Babel əl ilə quraşdırıldıqda, Flow üçün xüsusi preset yükləmək lazımdır. -If you use Yarn, run: +Yarn işlədirsinizsə: ```bash yarn add --dev @babel/preset-flow ``` -If you use npm, run: +npm işlədirsinizsə: ```bash npm install --save-dev @babel/preset-flow ``` -Then add the `flow` preset to your [Babel configuration](https://babeljs.io/docs/usage/babelrc/). For example, if you configure Babel through `.babelrc` file, it could look like this: +Sonra, `flow` presetini [Babel konfiqurasiyasına](https://babeljs.io/docs/usage/babelrc/) əlavə edin. Məsələn, Babel-ı `.babelrc` faylı ilə konfiqurasiya etdikdə, fayl aşağıdakı formada ola bilər: ```js{3} { @@ -106,101 +106,102 @@ Then add the `flow` preset to your [Babel configuration](https://babeljs.io/docs } ``` -This will let you use the Flow syntax in your code. +Bu, kodunuzda Flow sintaksisi işlətməyə imkan yaradacaq. ->Note: +>Qeyd: > ->Flow does not require the `react` preset, but they are often used together. Flow itself understands JSX syntax out of the box. +>Flow, `react` presetini işlədilməsini tələb etmir. Lakin, adətən bu iki preset birlikdə işlənir. Flow təklikdə JSX sintaksisini anlayır. -#### Other Build Setups {#other-build-setups} +#### Digər Qurulmalar {#other-build-setups} -If you don't use either Create React App or Babel, you can use [flow-remove-types](https://github.com/flowtype/flow-remove-types) to strip the type annotations. +Create React App və ya Babel işlətmədikdə [flow-remove-types](https://github.com/flowtype/flow-remove-types) paketindən istifadə edərək tip annotasiyalarını silə bilərsiniz. -### Running Flow {#running-flow} +### Flow-un İcrası {#running-flow} -If you followed the instructions above, you should be able to run Flow for the first time. +Yuxarıdakı təlimatları sıra ilə təqib etmisinizsə, artıq Flow-nu işlədə biləcəksiniz. +Yarn işlədirsinizsə: ```bash yarn flow ``` -If you use npm, run: +npm işlədirsinizsə: ```bash npm run flow ``` -You should see a message like: +Əmrin nəticəsində aşağıdakı formada mesaj görəcəksiniz: ``` No errors! ✨ Done in 0.17s. ``` -### Adding Flow Type Annotations {#adding-flow-type-annotations} +### Flow Tip Annotasiyalarının Əlavəsi {#adding-flow-type-annotations} -By default, Flow only checks the files that include this annotation: +Adətən, Flow, yalnız göstərilən annotasiya olan faylları yoxlayır: ```js // @flow ``` -Typically it is placed at the top of a file. Try adding it to some files in your project and run `yarn flow` or `npm run flow` to see if Flow already found any issues. +Adətən bu annotasiya faylın tam üstündə əlavə olunur. Bəzi fayllara bu annotasiyanı əlavə edib `yarn flow` və ya `npm run flow` əmrlərini icra edərək Flow-nun səhv tapdığına baxın. -There is also [an option](https://flow.org/en/docs/config/options/#toc-all-boolean) to force Flow to check *all* files regardless of the annotation. This can be too noisy for existing projects, but is reasonable for a new project if you want to fully type it with Flow. +Annotasiyanın olmasından asılı olmayaraq Flow-nun *bütün* faylları yoxlaması üçün [bu parametrdən](https://flow.org/en/docs/config/options/#toc-all-boolean) istifadə edə bilərsiniz. Bu parametr mövcud layihələr üçün çox səhv göstərdiyindən çətin ola bilər. Lakin, yeni layihədə tipləri Flow ilə annotasiya etmək istəyirsinizsə, bu parametrdən istifadə etmək faydalı ola bilər. -Now you're all set! We recommend to check out the following resources to learn more about Flow: +İndi Flow tam işləyir! Flow haqqında əlavə məlumat üçün aşağıdakı resurslara baxın: -* [Flow Documentation: Type Annotations](https://flow.org/en/docs/types/) -* [Flow Documentation: Editors](https://flow.org/en/docs/editors/) -* [Flow Documentation: React](https://flow.org/en/docs/react/) -* [Linting in Flow](https://medium.com/flow-type/linting-in-flow-7709d7a7e969) +* [Flow Sənədləri: Tip Annotasiyaları](https://flow.org/en/docs/types/) +* [Flow Sənədləri: Redaktorlar](https://flow.org/en/docs/editors/) +* [Flow Sənədləri: React](https://flow.org/en/docs/react/) +* [Flow ilə Lintinq](https://medium.com/flow-type/linting-in-flow-7709d7a7e969) ## TypeScript {#typescript} -[TypeScript](https://www.typescriptlang.org/) is a programming language developed by Microsoft. It is a typed superset of JavaScript, and includes its own compiler. Being a typed language, TypeScript can catch errors and bugs at build time, long before your app goes live. You can learn more about using TypeScript with React [here](https://github.com/Microsoft/TypeScript-React-Starter#typescript-react-starter). +[TypeScript](https://www.typescriptlang.org/), Microsoft tərəfindən yaranmış proqramlaşdırma dilidir. Bu dil JavaScript-in üzərindən qurulub və öz kompilyatoru ilə gəlir. TypeScript tipli dil olduğundan xətalar və baqlar qurulma zamanı tutula bilir. React ilə TypeScript işlətməyi haqqında [buradan](https://github.com/Microsoft/TypeScript-React-Starter#typescript-react-starter) oxuya bilərsiniz. -To use TypeScript, you need to: -* Add TypeScript as a dependency to your project -* Configure the TypeScript compiler options -* Use the right file extensions -* Add definitions for libraries you use +TypeScript işlətmək üçün: +* TypeScript-i layihə asılılığı kimi əlavə edin. +* TypeScript kompilyator parametrlərini konfiqurasiya edin +* Düzgün fayl genişləmnəsindən istifadə edin +* İşlədilən kitabxanalar üçün tip tərifləri əlavə edin -Let's go over these in detail. +Gəlin, bu addımlara detallı baxaq. -### Using TypeScript with Create React App {#using-typescript-with-create-react-app} +### Create React App ilə TypeScript-in İşlədilməsi {#using-typescript-with-create-react-app} -Create React App supports TypeScript out of the box. +Create React App ilə TypeScript konfiqurasiyasız işləyir. -To create a **new project** with TypeScript support, run: +TypeScript dəstəkləyən **yeni layihə** üçün aşağıdakı əmri icra edin: ```bash npx create-react-app my-app --typescript ``` -You can also add it to an **existing Create React App project**, [as documented here](https://facebook.github.io/create-react-app/docs/adding-typescript). +TypeScript-i **mövcud Create React App layihəsinə də** əlavə edə bilərsiniz. [Sənədlərə baxın](https://facebook.github.io/create-react-app/docs/adding-typescript). ->Note: +>Qeyd: > ->If you use Create React App, you can **skip the rest of this page**. It describes the manual setup which doesn't apply to Create React App users. +>Create React App işədirsinizsə, **bu səhifənin qalanının üzərindən atlaya bilərsiniz**. Burada, TypeScript-in əl ilə qurulması izah edilir. Buradakı təlimatlar Create React App istifadəçilərinə şamil edilmir. +### Layihəyə TypeScript Əlavə Etmək {#adding-typescript-to-a-project} -### Adding TypeScript to a Project {#adding-typescript-to-a-project} -It all begins with running one command in your terminal. +Proses, terminaldan aşağıdakı əmri icra etmək ilə başlayır. -If you use [Yarn](https://yarnpkg.com/), run: +[Yarn](https://yarnpkg.com/) işlədirsinizsə: ```bash yarn add --dev typescript ``` -If you use [npm](https://www.npmjs.com/), run: +[npm](https://www.npmjs.com/) işlədirsinizsə: ```bash npm install --save-dev typescript ``` -Congrats! You've installed the latest version of TypeScript into your project. Installing TypeScript gives us access to the `tsc` command. Before configuration, let's add `tsc` to the "scripts" section in our `package.json`: +Təbrik edirik! Siz layihənizə TypeScript-in ən sonuncu versiyasını yüklədiniz. TypeScript-i yüklədikdə `tsc` əmrindən istifadə edə bilirik. Konfiqurasiya etməkdən öncə `package.json` faylının "scripts" bölməsinə `tsc` əmrini əlavə edin: ```js{4} { @@ -213,27 +214,29 @@ Congrats! You've installed the latest version of TypeScript into your project. I } ``` -### Configuring the TypeScript Compiler {#configuring-the-typescript-compiler} -The compiler is of no help to us until we tell it what to do. In TypeScript, these rules are defined in a special file called `tsconfig.json`. To generate this file: +### TypeScript Kompilyatorunun Konfiqurasiyası {#configuring-the-typescript-compiler} -If you use [Yarn](https://yarnpkg.com/), run: +Kompilyatora nə etdiyiniz demədikdə bizim üçün heç bir xeyri olmayacaq. Bu qaydalar `tsconfig.json` adlı xüsusi faylda teyin edilir. Faylı yaratmaq üçün aşağıdakı əmrləri icra edin. + +[Yarn](https://yarnpkg.com/) işlədirsinizsə: ```bash yarn run tsc --init ``` -If you use [npm](https://www.npmjs.com/), run: +[npm](https://www.npmjs.com/) işlədirsinizsə: ```bash npx tsc --init ``` -Looking at the now generated `tsconfig.json`, you can see that there are many options you can use to configure the compiler. For a detailed description of all the options, check [here](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html). +Yeni yaranmış `tsconfig.json` faylında bir çox parametrlər ilə kompilyatoru konfiqurasiya etmək mümkündür. Parametrlərin dərin izahatı üçün [bu sənədə](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) baxın. + +Bir çox parametrin arasından `rootDir` və `outDir` parametrinə baxaq. Kompilyator typescript fayllarını qəbul edib javascript faylları yaratmalıdır. Lakin, biz mənbə faylları və yaranmış nəticələri qarışdırmaq istəmirik. -Of the many options, we'll look at `rootDir` and `outDir`. In its true fashion, the compiler will take in typescript files and generate javascript files. However we don't want to get confused with our source files and the generated output. +Biz bunu iki addım ilə həll edəcəyik: -We'll address this in two steps: -* Firstly, let's arrange our project structure like this. We'll place all our source code in the `src` directory. +* İlk olaraq, layihə strukturunu aşağıdakı formada düzəldəcəyik. Bütün mənbə fayllarını `src` direktoriyasında saxlayacağıq. ``` ├── package.json @@ -242,7 +245,7 @@ We'll address this in two steps: └── tsconfig.json ``` -* Next, we'll tell the compiler where our source code is and where the output should go. +* Sonra, mənbə fayllarının və yaranacaq nəticənin harada olduğunu kompilyatora göstərəcəyik. ```js{6,7} // tsconfig.json @@ -257,33 +260,36 @@ We'll address this in two steps: } ``` -Great! Now when we run our build script the compiler will output the generated javascript to the `build` folder. The [TypeScript React Starter](https://github.com/Microsoft/TypeScript-React-Starter/blob/master/tsconfig.json) provides a `tsconfig.json` with a good set of rules to get you started. +Əla! İndi "build" skriptini icra etdikdə kompilyator yaranacaq javascript faylları `build/` direktoriyasına əlavə edəcək. [TypeScript React Starter](https://github.com/Microsoft/TypeScript-React-Starter/blob/master/tsconfig.json) paketi, başlamaq üçün yaxşı qaydalar olan `tsconfig.json` faylı təmin edir. + +Adətən, yaranmış javascript faylını mənbə kontrolunda (source control) saxlamağı tövsiyyə etmirik. Bu səbəbdən, `build/` direktoriyasını `.gitignore`-a əlavə edin. + +### Fayl genişləmələri {#file-extensions} -Generally, you don't want to keep the generated javascript in your source control, so be sure to add the build folder to your `.gitignore`. +Adətən React komponentləri `.js` faylında saxlanılır. TypeScript-də isə iki fayl geniləməsi var: -### File extensions {#file-extensions} -In React, you most likely write your components in a `.js` file. In TypeScript we have 2 file extensions: +Standart fayl genişləməsi `.ts`-dir. `.tsx` isə `JSX` olan fayllar üçün istifadə edilir. -`.ts` is the default file extension while `.tsx` is a special extension used for files which contain `JSX`. +### TypeScript-in İcra Olunması {#running-typescript} -### Running TypeScript {#running-typescript} +Yuxarıdakı təlimatları sıra ilə təqib etmisinizsə, artıq TypeScript-i işlədə biləcəksiniz. -If you followed the instructions above, you should be able to run TypeScript for the first time. +Yarn işlədirsinizsə: ```bash yarn build ``` -If you use npm, run: +npm işlədirsinizsə: ```bash npm run build ``` -If you see no output, it means that it completed successfully. +Əgər nəticə görmürsünzüsə, TypeScript əməliyyatı uğurla başa çatdı. +### Tip Tərifləri {#type-definitions} -### Type Definitions {#type-definitions} To be able to show errors and hints from other packages, the compiler relies on declaration files. A declaration file provides all the type information about a library. This enables us to use javascript libraries like those on npm in our project. There are two main ways to get declarations for a library: From 8f8779228dbf7e9498dbac3188d9fb5d028e4636 Mon Sep 17 00:00:00 2001 From: Gasim Gasimzada Date: Sun, 13 Oct 2019 23:36:08 +0400 Subject: [PATCH 2/4] Translate Typescript part of Static Typechecking --- content/docs/static-type-checking.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/content/docs/static-type-checking.md b/content/docs/static-type-checking.md index 4c186aac4..931c00ca8 100644 --- a/content/docs/static-type-checking.md +++ b/content/docs/static-type-checking.md @@ -290,13 +290,13 @@ npm run build ### Tip Tərifləri {#type-definitions} -To be able to show errors and hints from other packages, the compiler relies on declaration files. A declaration file provides all the type information about a library. This enables us to use javascript libraries like those on npm in our project. +Kompilyator deklarasiya fayllarından istifadə edərək digər paketlərin annotasiyalarını və tip xətalarını göstərir. Deklarasiya faylı kitabxana haqqında bütün tip məlumatlarını təmin edir. Bu, layihədə npm ilə işlədilən javascript kitabxanalarının istifadəsinə imkan yaradır. -There are two main ways to get declarations for a library: +Kitabxana deklarasiyalarını əldə etməyin iki yolu var: -__Bundled__ - The library bundles its own declaration file. This is great for us, since all we need to do is install the library, and we can use it right away. To check if a library has bundled types, look for an `index.d.ts` file in the project. Some libraries will have it specified in their `package.json` under the `typings` or `types` field. +__Paket ilə gələn__ - Kitabxana deklarasiya faylı ilə paketlənir. Belə olduqda, kitabxananı yükləyib dərhal işlətmək mümkündür. Kitabxananın tiplərinin olmasını bilmək üçün layihədə `index.d.ts` faylına baxın. Bu fayl bəzi kitabxanalarda `package.json` faylının `typings` və ya `types` bölməsində göstərilir. -__[DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped)__ - DefinitelyTyped is a huge repository of declarations for libraries that don't bundle a declaration file. The declarations are crowd-sourced and managed by Microsoft and open source contributors. React for example doesn't bundle its own declaration file. Instead we can get it from DefinitelyTyped. To do so enter this command in your terminal. +__[DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped)__ - deklarasiya faylı paket ilə gəlməyən kitabxanalar üçün DefinitelyTyped reposundan istifadə edə bilərsiniz. Bu repoda olan deklarasiyalar cəmiyyət tərəfindən əlavə edilir və Microsoft və digər open-source əməkdaşları tərəfindən idarə olunur. Məsələn, React, deklarasiya fayllarını paketləmir. Əvəzinə, tipləri DefinitelyTyped reposundan almaq mümkündür. Tipləri əlavə etmək üçün aşağıdakı əmri terminalda icra edin. ```bash # yarn @@ -306,8 +306,9 @@ yarn add --dev @types/react npm i --save-dev @types/react ``` -__Local Declarations__ -Sometimes the package that you want to use doesn't bundle declarations nor is it available on DefinitelyTyped. In that case, we can have a local declaration file. To do this, create a `declarations.d.ts` file in the root of your source directory. A simple declaration could look like this: +__Lokal Deklarasiyalar__ + +Bəzən, işlədilən paketdə və ya DefinitelyTyped reposunda tip deklarasiyaları olmaya bilər. Bu halda, deklarasiyaları lokal faylda göstərmək olar. Bunu edə bilmək üçün, ana direktoriyada `declarations.d.ts` faylı əlavə edin. Sadə deklarasiya aşağıdakı formada olur: ```typescript declare module 'querystring' { @@ -316,11 +317,11 @@ declare module 'querystring' { } ``` -You are now ready to code! We recommend to check out the following resources to learn more about TypeScript: +İndi TypeScript ilə kod yaza bilərsiniz! TypeScript haqqında əlavə məlumat üçün aşağıdakı resurslara baxın: -* [TypeScript Documentation: Basic Types](https://www.typescriptlang.org/docs/handbook/basic-types.html) -* [TypeScript Documentation: Migrating from Javascript](https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html) -* [TypeScript Documentation: React and Webpack](https://www.typescriptlang.org/docs/handbook/react-&-webpack.html) +* [TypeScript Sənədləri: Əsas Tiplər](https://www.typescriptlang.org/docs/handbook/basic-types.html) +* [TypeScript Sənədləri: Javascript-dən Miqrasiya](https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html) +* [TypeScript Sənədləri: React və Webpack](https://www.typescriptlang.org/docs/handbook/react-&-webpack.html) ## Reason {#reason} From 1925d93106c3134f2ad498757382959987e86ac8 Mon Sep 17 00:00:00 2001 From: Gasim Gasimzada Date: Sun, 13 Oct 2019 23:45:02 +0400 Subject: [PATCH 3/4] Translate other parts of Static Type Checking --- content/docs/static-type-checking.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/docs/static-type-checking.md b/content/docs/static-type-checking.md index 931c00ca8..8bdbaf175 100644 --- a/content/docs/static-type-checking.md +++ b/content/docs/static-type-checking.md @@ -325,16 +325,16 @@ declare module 'querystring' { ## Reason {#reason} -[Reason](https://reasonml.github.io/) is not a new language; it's a new syntax and toolchain powered by the battle-tested language, [OCaml](https://ocaml.org/). Reason gives OCaml a familiar syntax geared toward JavaScript programmers, and caters to the existing NPM/Yarn workflow folks already know. +[Reason](https://reasonml.github.io/) yeni bir dil deyil. Bu, [OCaml](https://ocaml.org/) ilə işləyən yeni sintaksis və toolchain-dir. Reason, OCaml dilini JavaScript proqramçılarının başa düşəcəyi sintaksis ilə təmin edir. Əlavə olaraq, bu alət ilə bildiyimiz mövcud NPM/Yarn iş axınlarından istifadə etmək mümkündür. -Reason is developed at Facebook, and is used in some of its products like Messenger. It is still somewhat experimental but it has [dedicated React bindings](https://reasonml.github.io/reason-react/) maintained by Facebook and a [vibrant community](https://reasonml.github.io/docs/en/community.html). +Reason, Facebook tərəfindən yaradılıb və Messenger kimi məhsullarda istifdə olunur. Bu alət hələ də eksperimentaldır. Lakin, bu alətin Facebook və [canlı cəmiyyət](https://reasonml.github.io/docs/en/community.html) tərəfindən saxlanan [React binding-ləri](https://reasonml.github.io/reason-react/) var. ## Kotlin {#kotlin} -[Kotlin](https://kotlinlang.org/) is a statically typed language developed by JetBrains. Its target platforms include the JVM, Android, LLVM, and [JavaScript](https://kotlinlang.org/docs/reference/js-overview.html). +[Kotlin](https://kotlinlang.org/), JetBrains tərəfindən düzəldilmiş statik tipli yazılan dildir. Bu dilin hədəf platforması JVM, Android, LLVM, və [JavaScript-dir](https://kotlinlang.org/docs/reference/js-overview.html). -JetBrains develops and maintains several tools specifically for the React community: [React bindings](https://github.com/JetBrains/kotlin-wrappers) as well as [Create React Kotlin App](https://github.com/JetBrains/create-react-kotlin-app). The latter helps you start building React apps with Kotlin with no build configuration. +JetBrains, React cəmiyyəti üçün bir neçə alət düzəldir və saxlayır: [React binding-ləri](https://github.com/JetBrains/kotlin-wrappers) və [Create React Kotlin App](https://github.com/JetBrains/create-react-kotlin-app). Create React Kotlin App paketi qurulma konfiqurasiyasız React applikasiyaları yaramağa imkan yaradır. -## Other Languages {#other-languages} +## Digər Dillər {#other-languages} -Note there are other statically typed languages that compile to JavaScript and are thus React compatible. For example, [F#/Fable](https://fable.io/) with [elmish-react](https://elmish.github.io/react). Check out their respective sites for more information, and feel free to add more statically typed languages that work with React to this page! +Nəzərə alın ki, JavaScript-ə kompilyasiya olunan (bu səbəbdən, React ilə işləyə bilən) digər statik tipli yazılan dillər də mövcuddur: [F#/Fable](https://fable.io/) və [elmish-react](https://elmish.github.io/react). Əlavə məlumat üçün bu paketlərin səhifələrinə baxın. React ilə işləyən statik tipli dil bilirsinizə, yeni dili bu səhifəyə əlavə etməkdən çəkinməyin! From 4b9651236432754b7c5e9b8ab8bcfffd6d696996 Mon Sep 17 00:00:00 2001 From: Gasim Gasimzada Date: Wed, 16 Oct 2019 13:31:07 +0400 Subject: [PATCH 4/4] Fix static type checking after self-review --- content/docs/static-type-checking.md | 76 ++++++++++++++-------------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/content/docs/static-type-checking.md b/content/docs/static-type-checking.md index 8bdbaf175..bdd8a53f9 100644 --- a/content/docs/static-type-checking.md +++ b/content/docs/static-type-checking.md @@ -4,21 +4,21 @@ title: Statik Tip Yoxlamaları permalink: docs/static-type-checking.html --- -[Flow](https://flow.org/) və [TypeScript](https://www.typescriptlang.org/) statik tip yoxlayıcıları kod icra olunmamışdan öncə bəzi problemləri tapa bilir. Bu alətlər avtomatik tamamlama kimi xüsusiyyətləri əlavə edərək proqramçı iş axının təkmiləşdirir. Bu səbəbdən, böyük kodlarda `PropTypes` əvəzinə Flow və ya Typescript işlətməyi tövsiyyə edirik. +[Flow](https://flow.org/) və [TypeScript](https://www.typescriptlang.org/) statik tip yoxlayıcıları ilə kod icra olunmamışdan öncə bəzi problemlərin tapılması mümkündür. Əlavə olaraq, bu alətlər avtomatik tamamlama kimi xüsusiyyətlər əlavə edərək proqramçı iş axının təkmiləşdirir. Bu səbəbdən, böyük kodlarda `PropTypes` əvəzinə Flow və ya Typescript işlətməyi tövsiyyə edirik. ## Flow {#flow} -[Flow](https://flow.org/) JavaScript kodu üçün statik tip yoxlayıcısıdır. Bu alət Facebook tərəfindən yaradılıb və React ilə çox işlənilir. Bu, sizə dəyişənləri, funksiyaları və React komponentlərini xüsusi tip sintaksisi ilə annotasiya edərək xətaları tez tutmağa imkan yaradır. Əsasları öyrənmək üçün [Flow-a giriş](https://flow.org/en/docs/getting-started/) sənədini oxuya bilərsiniz. +[Flow](https://flow.org/), JavaScript kodu üçün statik tip yoxlayıcısıdır. Bu alət, Facebook tərəfindən yaradılıb və React ilə çox işlənilir. Bu, dəyişənləri, funksiyaları və React komponentlərini xüsusi tip sintaksisi ilə annotasiya edərək xətaların tez tutulmasına imkan yaradır. Əsasları öyrənmək üçün [Flow-a giriş](https://flow.org/en/docs/getting-started/) sənədini oxuya bilərsiniz. Flow-nu işlətmək üçün: * Flow-nu layihə asılılığı kimi əlavə edin. * Kompilyasiya edilən kodda Flow sintaksisinin silindiyindən əmin olun. -* Tip annotasiyalarını əlavə edin və Flow-nu çağıraraq bu tipləri yoxlayın. +* Tip annotasiyalarını əlavə edib Flow-nu çağıraraq bu tipləri yoxlayın. -Aşağıda bu addımlar detallı başa salınır. +Bu addımlar aşağıdalı bölmələrdə detallı başa salınır. -### Flow=nu Layihəyə Əlavə Et {#adding-flow-to-a-project} +### Flow-nu Layihəyə Əlavə Et {#adding-flow-to-a-project} İlk olaraq, terminaldan layihə direktoriyasına naviqasiya edin. Sonra, aşağıdakı əmri icra edin: @@ -34,7 +34,7 @@ yarn add --dev flow-bin npm install --save-dev flow-bin ``` -Bu əmr layihənizə Flow-un ən son versiyasını yükləyir. +Bu əmr, Flow-un ən son versiyasını layihəyə yükləyir. İndi, `flow` əmrini `package.json` faylının `"scripts"` bölməsinə əlavə edin: @@ -63,25 +63,25 @@ yarn run flow init npm run flow init ``` -Bu əmr Flow konfiqurasiya faylı yaradacaq. Bu faylı reponuza commit edin. +Yaranan Flow konfiqurasiya faylını reponuza commit edin. ### Flow Sintaksisinin Kompilyasiya Olunan Koddan Silinməsi {#stripping-flow-syntax-from-the-compiled-code} -Flow, tip annotasiyaları üçün JavaScript dilini xüsusi sintaksis ilə artırır. Lakin, brauzerlərin bu sintaksisdən xəbəri olmadığından bu sintaksisin brauzerə göndərilən, kompilyasiya olunan JavaScript paketində olmadığından əmin olmalıyıq. +Flow, tip annotasiyaları üçün JavaScript dilinə xüsusi sintaksis əlavə edir. Lakin, brauzerlərin bu sintaksisı anlamadığından, bu sintaksis brauzerə göndərilən, kompilyasiya olunan JavaScript paketindən silinməlidir. -Bunu etməyin yolu JavaScript-i kompilyasiya etmək üçün işlətdiyiniz alətlərdən asılıdır. +Bu sintaksisin silinməsi JavaScript-i kompilyasiyası edən alətdən asılıdır. #### Create React App {#create-react-app} -Əgər layihəniz [Create React App](https://github.com/facebookincubator/create-react-app) ilə qurulubsa, təbrik edirik! Flow annotasiyaları kompilyasiya zamanı silindiyindən heç nə etmək lazım deyil. +Əgər layihəniz [Create React App](https://github.com/facebookincubator/create-react-app) ilə qurulubsa, təbrik edirik! Kompilyasiya zamanı Flow annotasiyaları silinəcək. #### Babel {#babel} >Qeyd: > ->Bu təlimatlar Create React App istifadəçiləri üçün *nəzərdə tutulmayıb*. Create React App-in Babel işlətdiyinə baxmayaraq Flow-nu anlaması artıq konfiqurasiya olunub. Yalnız Create React App *işlətmədikdə* bu bölmədə olan təlimatları təqib edin. +>Bu təlimatlar Create React App istifadəçiləri üçün *nəzərdə tutulmayıb*. Create React App-in Babel işlətdiyinə baxmayaraq Flow-nu addımı artıq konfiqurasiya olunub. Bu bölmədə olan təlimatları Create React App *işlətmədikdə* təqib edin. -Layihəyə Babel əl ilə quraşdırıldıqda, Flow üçün xüsusi preset yükləmək lazımdır. +Layihəyə Babel əl ilə quraşdırıldıqda Flow üçün xüsusi preset yükləmək lazımdır. Yarn işlədirsinizsə: @@ -95,7 +95,7 @@ npm işlədirsinizsə: npm install --save-dev @babel/preset-flow ``` -Sonra, `flow` presetini [Babel konfiqurasiyasına](https://babeljs.io/docs/usage/babelrc/) əlavə edin. Məsələn, Babel-ı `.babelrc` faylı ilə konfiqurasiya etdikdə, fayl aşağıdakı formada ola bilər: +Sonra, `flow` presetini [Babel konfiqurasiyasına](https://babeljs.io/docs/usage/babelrc/) əlavə edin. Məsələn, Babel-ı `.babelrc` faylı ilə konfiqurasiya etdikdə fayl aşağıdakı formada ola bilər: ```js{3} { @@ -110,17 +110,18 @@ Bu, kodunuzda Flow sintaksisi işlətməyə imkan yaradacaq. >Qeyd: > ->Flow, `react` presetini işlədilməsini tələb etmir. Lakin, adətən bu iki preset birlikdə işlənir. Flow təklikdə JSX sintaksisini anlayır. +>Flow, `react` presetinin işlədilməsini tələb etmir. Lakin, adətən bu iki preset birlikdə işlənilir. Flow təklikdə JSX sintaksisini anlayır. #### Digər Qurulmalar {#other-build-setups} Create React App və ya Babel işlətmədikdə [flow-remove-types](https://github.com/flowtype/flow-remove-types) paketindən istifadə edərək tip annotasiyalarını silə bilərsiniz. -### Flow-un İcrası {#running-flow} +### Flow-nun İcrası {#running-flow} Yuxarıdakı təlimatları sıra ilə təqib etmisinizsə, artıq Flow-nu işlədə biləcəksiniz. Yarn işlədirsinizsə: + ```bash yarn flow ``` @@ -140,15 +141,15 @@ No errors! ### Flow Tip Annotasiyalarının Əlavəsi {#adding-flow-type-annotations} -Adətən, Flow, yalnız göstərilən annotasiya olan faylları yoxlayır: +Normalda, Flow yalnız aşağıdakı annotasiya olan faylları yoxlayır: ```js // @flow ``` -Adətən bu annotasiya faylın tam üstündə əlavə olunur. Bəzi fayllara bu annotasiyanı əlavə edib `yarn flow` və ya `npm run flow` əmrlərini icra edərək Flow-nun səhv tapdığına baxın. +Adətən, bu annotasiya faylın tam yuxarısına əlavə olunur. Bu annotasiyanı bəzi fayllara əlavə edib `yarn flow` və ya `npm run flow` əmrlərini icra edərək Flow-nun səhv tapdığına baxın. -Annotasiyanın olmasından asılı olmayaraq Flow-nun *bütün* faylları yoxlaması üçün [bu parametrdən](https://flow.org/en/docs/config/options/#toc-all-boolean) istifadə edə bilərsiniz. Bu parametr mövcud layihələr üçün çox səhv göstərdiyindən çətin ola bilər. Lakin, yeni layihədə tipləri Flow ilə annotasiya etmək istəyirsinizsə, bu parametrdən istifadə etmək faydalı ola bilər. +Annotasiyanın olmasından asılı olmayaraq Flow-nun *bütün* faylları yoxlaması üçün [bu parametrdən](https://flow.org/en/docs/config/options/#toc-all-boolean) istifadə edə bilərsiniz. Bu parametr mövcud layihələr üçün çox səhv göstərdiyindən ağır ola bilər. Lakin, yeni layihədə tipləri Flow ilə annotasiya etmək istəyirsinizsə, bu parametrdən istifadə etmək faydalı ola bilər. İndi Flow tam işləyir! Flow haqqında əlavə məlumat üçün aşağıdakı resurslara baxın: @@ -159,19 +160,20 @@ Annotasiyanın olmasından asılı olmayaraq Flow-nun *bütün* faylları yoxlam ## TypeScript {#typescript} -[TypeScript](https://www.typescriptlang.org/), Microsoft tərəfindən yaranmış proqramlaşdırma dilidir. Bu dil JavaScript-in üzərindən qurulub və öz kompilyatoru ilə gəlir. TypeScript tipli dil olduğundan xətalar və baqlar qurulma zamanı tutula bilir. React ilə TypeScript işlətməyi haqqında [buradan](https://github.com/Microsoft/TypeScript-React-Starter#typescript-react-starter) oxuya bilərsiniz. +[TypeScript](https://www.typescriptlang.org/), Microsoft tərəfindən yaranmış proqramlaşdırma dilidir. JavaScript-in üzərindən qurulmuş bu dilin öz kompilyatoru var. TypeScript, tipli dil olduğundan xətalar və baqlar qurulma zamanı tutula bilir. React ilə TypeScript işlətmək haqqında [buradan](https://github.com/Microsoft/TypeScript-React-Starter#typescript-react-starter) oxuya bilərsiniz. TypeScript işlətmək üçün: + * TypeScript-i layihə asılılığı kimi əlavə edin. -* TypeScript kompilyator parametrlərini konfiqurasiya edin -* Düzgün fayl genişləmnəsindən istifadə edin -* İşlədilən kitabxanalar üçün tip tərifləri əlavə edin +* TypeScript kompilyator parametrlərini konfiqurasiya edin. +* Düzgün fayl genişləmnəsindən istifadə edin. +* İşlədilən kitabxanalar üçün tip tərifləri əlavə edin. Gəlin, bu addımlara detallı baxaq. ### Create React App ilə TypeScript-in İşlədilməsi {#using-typescript-with-create-react-app} -Create React App ilə TypeScript konfiqurasiyasız işləyir. +TypeScript, Create React App-də konfiqurasiyasız işləyir. TypeScript dəstəkləyən **yeni layihə** üçün aşağıdakı əmri icra edin: @@ -187,7 +189,7 @@ TypeScript-i **mövcud Create React App layihəsinə də** əlavə edə bilərsi ### Layihəyə TypeScript Əlavə Etmək {#adding-typescript-to-a-project} -Proses, terminaldan aşağıdakı əmri icra etmək ilə başlayır. +Typescript-i aşağıdakı əmri icra edərək yükləyin. [Yarn](https://yarnpkg.com/) işlədirsinizsə: @@ -201,7 +203,7 @@ yarn add --dev typescript npm install --save-dev typescript ``` -Təbrik edirik! Siz layihənizə TypeScript-in ən sonuncu versiyasını yüklədiniz. TypeScript-i yüklədikdə `tsc` əmrindən istifadə edə bilirik. Konfiqurasiya etməkdən öncə `package.json` faylının "scripts" bölməsinə `tsc` əmrini əlavə edin: +Təbrik edirik! Siz, layihənizə TypeScript-in ən sonuncu versiyasını yüklədiniz. TypeScript paketi `tsc` əmri ilə gelir. Konfiqurasiya etməkdən öncə `package.json` faylının "scripts" bölməsinə `tsc` əmrini əlavə edin: ```js{4} { @@ -216,7 +218,7 @@ Təbrik edirik! Siz layihənizə TypeScript-in ən sonuncu versiyasını yüklə ### TypeScript Kompilyatorunun Konfiqurasiyası {#configuring-the-typescript-compiler} -Kompilyatora nə etdiyiniz demədikdə bizim üçün heç bir xeyri olmayacaq. Bu qaydalar `tsconfig.json` adlı xüsusi faylda teyin edilir. Faylı yaratmaq üçün aşağıdakı əmrləri icra edin. +Kompilyatorun nə edəcəyini demədikdə Typescript-in heç bir xeyri olmayacaq. Bu qaydalar `tsconfig.json` adlı xüsusi faylda təyin edilir. Faylı yaratmaq üçün aşağıdakı əmrləri icra edin. [Yarn](https://yarnpkg.com/) işlədirsinizsə: @@ -230,11 +232,11 @@ yarn run tsc --init npx tsc --init ``` -Yeni yaranmış `tsconfig.json` faylında bir çox parametrlər ilə kompilyatoru konfiqurasiya etmək mümkündür. Parametrlərin dərin izahatı üçün [bu sənədə](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) baxın. +Yeni yaranmış `tsconfig.json` faylında olan parametrlər ilə kompilyatoru konfiqurasiya etmək mümkündür. Parametrlərin dərin izahatı üçün [bu sənədə](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) baxın. -Bir çox parametrin arasından `rootDir` və `outDir` parametrinə baxaq. Kompilyator typescript fayllarını qəbul edib javascript faylları yaratmalıdır. Lakin, biz mənbə faylları və yaranmış nəticələri qarışdırmaq istəmirik. +Əsas `rootDir` və `outDir` parametlərinə baxaq. Kompilyator, typescript fayllarını qəbul edib javascript faylları yaratmalıdır. Lakin, biz mənbə fayllarını və yaranmış nəticələri qarışdırmaq istəmirik. -Biz bunu iki addım ilə həll edəcəyik: +Bunu iki addım ilə həll edəcəyik: * İlk olaraq, layihə strukturunu aşağıdakı formada düzəldəcəyik. Bütün mənbə fayllarını `src` direktoriyasında saxlayacağıq. @@ -260,13 +262,13 @@ Biz bunu iki addım ilə həll edəcəyik: } ``` -Əla! İndi "build" skriptini icra etdikdə kompilyator yaranacaq javascript faylları `build/` direktoriyasına əlavə edəcək. [TypeScript React Starter](https://github.com/Microsoft/TypeScript-React-Starter/blob/master/tsconfig.json) paketi, başlamaq üçün yaxşı qaydalar olan `tsconfig.json` faylı təmin edir. +Əla! İndi "build" skriptini icra etdikdə kompilyator yaranacaq javascript faylları `build/` direktoriyasına əlavə edəcək. [TypeScript React Starter](https://github.com/Microsoft/TypeScript-React-Starter/blob/master/tsconfig.json) paketi başlamaq üçün yaxşı qaydalar olan `tsconfig.json` faylı təmin edir. -Adətən, yaranmış javascript faylını mənbə kontrolunda (source control) saxlamağı tövsiyyə etmirik. Bu səbəbdən, `build/` direktoriyasını `.gitignore`-a əlavə edin. +Adətən, yaranmış javascript faylarını mənbə kontrolunda (source control) saxlamağı tövsiyyə etmirik. Bu səbəbdən, `build/` direktoriyasını `.gitignore`-a əlavə edin. ### Fayl genişləmələri {#file-extensions} -Adətən React komponentləri `.js` faylında saxlanılır. TypeScript-də isə iki fayl geniləməsi var: +Normalda, React komponentləri `.js` faylında saxlanılır. TypeScript-də iki fayl genişləməsindən istifadə edir: Standart fayl genişləməsi `.ts`-dir. `.tsx` isə `JSX` olan fayllar üçün istifadə edilir. @@ -290,11 +292,11 @@ npm run build ### Tip Tərifləri {#type-definitions} -Kompilyator deklarasiya fayllarından istifadə edərək digər paketlərin annotasiyalarını və tip xətalarını göstərir. Deklarasiya faylı kitabxana haqqında bütün tip məlumatlarını təmin edir. Bu, layihədə npm ilə işlədilən javascript kitabxanalarının istifadəsinə imkan yaradır. +Kompilyator, deklarasiya fayllarından istifadə edərək digər paketlərin annotasiyalarını və tip xətalarını göstərir. Deklarasiya faylı kitabxana haqqında bütün tip məlumatlarını təmin edir. Bu, layihədə npm ilə işlədilən javascript kitabxanalarının istifadəsinə imkan yaradır. Kitabxana deklarasiyalarını əldə etməyin iki yolu var: -__Paket ilə gələn__ - Kitabxana deklarasiya faylı ilə paketlənir. Belə olduqda, kitabxananı yükləyib dərhal işlətmək mümkündür. Kitabxananın tiplərinin olmasını bilmək üçün layihədə `index.d.ts` faylına baxın. Bu fayl bəzi kitabxanalarda `package.json` faylının `typings` və ya `types` bölməsində göstərilir. +__Paket ilə gələn__ - Kitabxana, deklarasiya faylı ilə paketlənir. Belə olduqda, kitabxananı yükləyib dərhal işlədə bilərsiniz. Kitabxana tiplərinin olduğunu bilmək üçün layihədə `index.d.ts` faylına baxın. Bu fayl, bəzi kitabxanalarda `package.json` faylının `typings` və ya `types` bölməsində göstərilir. __[DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped)__ - deklarasiya faylı paket ilə gəlməyən kitabxanalar üçün DefinitelyTyped reposundan istifadə edə bilərsiniz. Bu repoda olan deklarasiyalar cəmiyyət tərəfindən əlavə edilir və Microsoft və digər open-source əməkdaşları tərəfindən idarə olunur. Məsələn, React, deklarasiya fayllarını paketləmir. Əvəzinə, tipləri DefinitelyTyped reposundan almaq mümkündür. Tipləri əlavə etmək üçün aşağıdakı əmri terminalda icra edin. @@ -308,7 +310,7 @@ npm i --save-dev @types/react __Lokal Deklarasiyalar__ -Bəzən, işlədilən paketdə və ya DefinitelyTyped reposunda tip deklarasiyaları olmaya bilər. Bu halda, deklarasiyaları lokal faylda göstərmək olar. Bunu edə bilmək üçün, ana direktoriyada `declarations.d.ts` faylı əlavə edin. Sadə deklarasiya aşağıdakı formada olur: +Bəzən, işlədilən paketdə və ya DefinitelyTyped reposunda tip deklarasiyaları olmaya bilər. Bu halda, deklarasiyaları lokal faylda göstərmək lazımdır. Bunu edə bilmək üçün, ana direktoriyada `declarations.d.ts` faylı yaradın. Sadə deklarasiya aşağıdakı formada olur: ```typescript declare module 'querystring' { @@ -327,13 +329,13 @@ declare module 'querystring' { [Reason](https://reasonml.github.io/) yeni bir dil deyil. Bu, [OCaml](https://ocaml.org/) ilə işləyən yeni sintaksis və toolchain-dir. Reason, OCaml dilini JavaScript proqramçılarının başa düşəcəyi sintaksis ilə təmin edir. Əlavə olaraq, bu alət ilə bildiyimiz mövcud NPM/Yarn iş axınlarından istifadə etmək mümkündür. -Reason, Facebook tərəfindən yaradılıb və Messenger kimi məhsullarda istifdə olunur. Bu alət hələ də eksperimentaldır. Lakin, bu alətin Facebook və [canlı cəmiyyət](https://reasonml.github.io/docs/en/community.html) tərəfindən saxlanan [React binding-ləri](https://reasonml.github.io/reason-react/) var. +Reason, Facebook tərəfindən yaradılıb və Messenger kimi məhsullarda istifdə olunur. Bu alət eksperimentaldır. Lakin, bu alətin Facebook və [canlı cəmiyyət](https://reasonml.github.io/docs/en/community.html) tərəfindən saxlanan [React binding-ləri](https://reasonml.github.io/reason-react/) var. ## Kotlin {#kotlin} [Kotlin](https://kotlinlang.org/), JetBrains tərəfindən düzəldilmiş statik tipli yazılan dildir. Bu dilin hədəf platforması JVM, Android, LLVM, və [JavaScript-dir](https://kotlinlang.org/docs/reference/js-overview.html). -JetBrains, React cəmiyyəti üçün bir neçə alət düzəldir və saxlayır: [React binding-ləri](https://github.com/JetBrains/kotlin-wrappers) və [Create React Kotlin App](https://github.com/JetBrains/create-react-kotlin-app). Create React Kotlin App paketi qurulma konfiqurasiyasız React applikasiyaları yaramağa imkan yaradır. +JetBrains, React cəmiyyəti üçün bir neçə alət düzəldir və saxlayır: [React binding-ləri](https://github.com/JetBrains/kotlin-wrappers) və [Create React Kotlin App](https://github.com/JetBrains/create-react-kotlin-app). Create React Kotlin App paketi, qurulma konfiqurasiyası olmadan React applikasiyalarının yaradılmasına imkan yaradır. ## Digər Dillər {#other-languages}