Spec-Zone.ru › nginx

Написание кода njs с использованием файлов определения TypeScript

  • Компиляция файлов определения TypeScript
  • Проверка API и автодополнение
  • Написание безопасного по типу кода njs

TypeScript — это типизированное надмножество JavaScript, которое компилируется в обычный JavaScript.

TypeScript поддерживает файлы определения, которые содержат информацию о типе существующих библиотек JavaScript. Это позволяет другим программам использовать значения, определенные в файлах, как если бы они были статически типизированными сущностями TypeScript.

njs предоставляет файлы определения TypeScript для своего API, которые можно использовать для:

  • Получения автозаполнения и проверки API в редакторе
  • Написания безопасного по типу кода njs

Компиляция файлов определения TypeScript

$ git clone https://github.com/nginx/njs
$ cd njs && ./configure && make ts
$ ls build/ts/
njs_core.d.ts
njs_shell.d.ts
ngx_http_js_module.d.ts
ngx_stream_js_module.d.ts

Проверка API и автодополнение

Поместите файлы *.d.ts в место, где ваш редактор сможет их найти.

test.js:

/// <reference path="ngx_http_js_module.d.ts" />
/**
 * @param {NginxHTTPRequest} r
 * */
function content_handler(r) {
    r.headersOut['content-type'] = 'text/plain';
    r.return(200, "Hello");
}

Написание безопасного по типу кода njs

test.ts:

/// <reference path="ngx_http_js_module.d.ts" />
function content_handler(r: NginxHTTPRequest) {
    r.headersOut['content-type'] = 'text/plain';
    r.return(200, "Hello from TypeScript");
}

Установка TypeScript:

# npm install -g typescript

Компиляция TypeScript:

$ tsc test.ts
$ cat test.js

Полученный test.js файл можно использовать напрямую с njs.

© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/njs/typescript.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API