comparison xml/ru/docs/njs/typescript.xml @ 2541:0e6bbd8138c4

Added article about TypeScript in njs.
author Yaroslav Zhuravlev <yar@nginx.com>
date Fri, 15 May 2020 16:22:43 +0100
parents
children ff357b676c2e
comparison
equal deleted inserted replaced
2540:b686736680e3 2541:0e6bbd8138c4
1 <?xml version="1.0"?>
2
3 <!--
4 Copyright (C) Nginx, Inc.
5 -->
6
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
8
9 <article name="Создание кода njs при помощи файлов деклараций TypeScript"
10 link="/en/docs/njs/typescript.html"
11 lang="en"
12 rev="1">
13
14 <section>
15
16 <para>
17 <link url="https://www.typescriptlang.org">TypeScript</link>&mdash;это
18 типизированное подмножество JavaScript,
19 которое компилируется в обычный JavaScript.
20 </para>
21
22 <para>
23 TypeScript поддерживает файлы деклараций, в которых содержится
24 типизированная информация существующих библиотек JavaScript.
25 С их помощью программы могут использовать значения в файлах также,
26 если бы эти значения были статически типизированными сущностями TypeScript.
27 </para>
28
29 <para>
30 В njs файлы деклараций TypeScript предоставляются для
31 <link doc="reference.xml">API</link> и могут использоваться при:
32 <list type="bullet">
33
34 <listitem>
35 автозаполнении и проверки API в редакторе
36 </listitem>
37
38 <listitem>
39 создании типобезопасного njs-кода.
40 </listitem>
41
42 </list>
43 </para>
44
45 </section>
46
47
48 <section id="get" name="Компиляция файлов деклараций TypeScript">
49
50 <para>
51 <example>
52 $ hg clone http://hg.nginx.org/njs
53 $ cd njs &amp;&amp; ./configure &amp;&amp; make ts
54 $ ls build/ts/
55 njs_core.d.ts
56 njs_shell.d.ts
57 ngx_http_js_module.d.ts
58 ngx_stream_js_module.d.ts
59 </example>
60 </para>
61
62 </section>
63
64
65 <section id="autocomplete" name="Проверка API и автозаполнение">
66
67 <para>
68 Файлы деклараций <literal>*.d.ts</literal> необходимо поместить в место,
69 доступное редактору:
70 </para>
71
72 <para>
73 <literal>test.js</literal>:
74 <example>
75 /// &lt;reference path="ngx_http_js_module.d.ts" /&gt;
76 /**
77 * @param {NginxHTTPRequest} r
78 * */
79 function content_handler(r) {
80 r.headersOut['content-type'] = 'text/plain';
81 r.return(200, "Hello");
82 }
83 </example>
84 </para>
85
86 </section>
87
88
89 <section id="write" name="Создание типобезопасного njs кода">
90
91 <para>
92 <literal>test.ts</literal>:
93 <example>
94 /// &lt;reference path="ngx_http_js_module.d.ts" /&gt;
95 function content_handler(r: NginxHTTPRequest) {
96 r.headersOut['content-type'] = 'text/plain';
97 r.return(200, "Hello from TypeScript");
98 }
99 </example>
100 Установка TypeScript:
101 <example>
102 # npm install -g typescript
103 </example>
104 Компиляция TypeScript:
105 <example>
106 $ tsc test.ts
107 $ cat test.js
108 </example>
109 Созданный файл <literal>test.js</literal> может использоваться напрямую в njs.
110 </para>
111
112 </section>
113
114 </article>