Компания Amazon опубликовала компилятор jsii 1.90, представляющий собой модификацию компилятора TypeScript, позволяющую извлечь из компилируемых модулей информацию об API и сгенерировать универсальное представление данного API для обращения к JavaScript-классам из приложений на различных языках программирования. Код проекта написан на TypeScript и распространяется под лицензией Apache 2.0.
Jsii даёт возможность создавать на языке TypeScript библиотеки классов, которые могут использоваться в проектах на языках C#, Go, Java и Python, благодаря трансляции в родные для этих языков модули, предоставляющие тот же самый API. Инструментарий используется в AWS Cloud Development Kit для поставки библиотек для разных языков программирования, формируемых из одной кодовой базы. В новой версии реализовано кэширование списка классов для каждой сборки и документирована возможность перевода свойств в разряд необязательных.
Пример исходного кода на TypeScript:
export class Greeter { public greet(name: string) { return `Hello, ${name}!`; } } Представление, скомпилированное в C# var greeter = new Greeter(); greeter.Greet("World"); // => Hello, World! Представление, скомпилированное в Go greeter := NewGreeter() greeter.Greet("World") // => Hello, World! Представление, скомпилированное в Java final Greeter greeter = new Greeter(); greeter.greet("World"); // => Hello, World! Представление, скомпилированное в JavaScript const greeter = new Greeter(); greeter.greet("World"); // => Hello, World! Представление, скомпилированное в Python greeter = Greeter() greeter.greet("World") # => Hello, World!
Источник: http://www.opennet.ru/opennews/art.shtml?num=59884