Создание кода njs при помощи файлов деклараций TypeScript

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

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

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

В njs файлы деклараций TypeScript предоставляются для API и могут использоваться при:

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

$ hg clone http://hg.nginx.org/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.