This org-mode babel extension enables you to execute typescript code blocks.
** Install
*** Requirement You need to install node.js and typescript to use this extension.
*** MELPA With setting up [[http://melpa.org][MELPA]], use =M-x package-install ob-typescript= .
*** Manually Add ob-typescript.el to your =load-path= and require.
(add-to-list 'load-path "/path/to/ob-typescript.el") (require 'ob-typescript)
** Configure
(org-babel-do-load-languages 'org-babel-load-languages '((typescript . t) ))
The default command used to run the typescript compiler is defined in [[help:org-babel-command:typescript][org-babel-command:typescript]]. You may configure this to do things like use a sandboxed version of the typescript compiler without having to install it globally
(setq org-babel-command:typescript "npx -p typescript -- tsc")
** Examples
*** Execute with node.js
module Greeting {
export class Hello {
constructor(private text : string) {
}
say() :void{
console.log(${this.text}, ${x}, ${y}
);
}
}
}
var hello : Greeting.Hello = new Greeting.Hello("Hello, World!"); hello.say();
: Hello, World!, foo, bar,baz
*** Transpile
You can see transpile results by specifying ":wrap src js" header argument.
module Greeting { export class Hello { constructor(private text : string) { } say() :void{ console.log(this.text); } } }
var hello : Greeting.Hello = new Greeting.Hello("Hello, World!"); hello.say();
var Greeting; (function (Greeting) { var Hello = /* @class / (function () { function Hello(text) { this.text = text; } Hello.prototype.say = function () { console.log(this.text); }; return Hello; }()); Greeting.Hello = Hello; })(Greeting || (Greeting = {})); var hello = new Greeting.Hello("Hello, World!"); hello.say();