La transformación de mecanografiado en JavaScript

votos
17

Me pregunto cómo es posible transformar el texto mecanografiado en JavaScript de manera multiplataforma. Soy consciente acerca de la disponibilidad del gestor de paquetes nodo de texto mecanografiado , pero ¿existen otras alternativas que pueden utilizarse en el lado del servidor?

Publicado el 01/10/2012 a las 19:16
fuente por usuario
En otros idiomas...                            


9 respuestas

votos
25

El compilador mecanografiado se construye a máquina de escribir, y por lo tanto está disponible como un archivo JS ( tsc.js) que se puede ejecutar utilizando casi cualquier máquina virtual o aplicación JS-ES3 compiliant.

Dicho esto, la infraestructura archivo de E / S actual del compilador sólo es compatible con nodos y las API de archivos de Windows Scripting Host. Si desea recomendar para el apoyo a otro entorno, no dude en llegar al equipo en nuestro sitio de GitHub (Anteriormente CodePlex )

Respondida el 01/10/2012 a las 19:36
fuente por usuario

votos
12

Tal vez no es la respuesta que desea, pero como todo el mundo ha mencionado, el compilador es un archivo JS, así, sus opciones son las opciones de ejecución de un archivo JS.

En Windows, hay 2 que son obvios, Nodo, y Windows Script Host.

Usted sabe acerca nodo ya, la otra opción es un componente que viene con todas las versiones de Windows (creo), puede hacerlo de esta manera:

cscript path/to/tsc.js source-file.ts

Puede ver todas las opciones del compilador por solo:

cscript path/to/tsc.js

En Linux supongo que debe ser capaz de usar (además de nodo):

  • V8 cáscara independiente, reemplace nodeo cscriptconv8-shell
  • ExecJS https://github.com/sstephenson/execjs
  • Cualquier otro corredor JS disponible en la plataforma seleccionada (otra respuesta menciona Rhino por ejemplo)

Actualización: Otra respuesta sugiere la API compilador sólo es compatible con el nodo y Windows Script Host (herramienta cscript), por lo que, si es correcta, entonces en Linux que necesita para compilar Nodo mecanografiado.

Si usted está buscando algo así como apt get tsc(o lo que los gestores de paquetes de Linux / Mac son similares), creo que no lo es.

Recuerdo haber leído en alguna parte que la E / S está optimizado para el nodo y Windows Script Host, por lo que, si usted tiene problemas con las opciones, que probablemente va a terminar con el Nodo si la búsqueda de la independencia de plataforma.

Actualización: Otra respuesta aquí confirma lo mismo acerca de la compatibilidad.

Respondida el 03/10/2012 a las 04:23
fuente por usuario

votos
5

Concretamente, en el servidor (asumiendo que su servidor tiene Node.js disponibles), usted sólo tiene que ejecutar:

node path/to/tsc.js yourFile1.ts yourFile2.ts [etc]

Puede ejecutar ese comando sin ningún tipo de archivos de entrada para ver la ayuda de línea de comandos para tsc.js.

Respondida el 01/10/2012 a las 23:39
fuente por usuario

votos
3

Tengo un proyecto que recopila imprenta a Javascript en Java:

https://github.com/martypitt/typescript4j

Como se discutió en otras respuestas, esto hace uso de Rhino, por lo que no tiene dependencias en npmo node.

He aquí un ejemplo:

// Instantiate the compiler:
TypescriptCompiler compiler = new TypescriptCompiler();

// Compile a string:
String output = compiler.compile("class Greeter { greeting: string; }");

// Or, compile and output to a file:
compiler.compile(new File("example.ts"), new File('output.js'));

Yo lo uso en otro proyecto - 'Bakehouse' para llevar a cabo la compilación sobre la marcha de los recursos mecanografiado dentro de los entornos de la primavera

Respondida el 17/01/2013 a las 08:35
fuente por usuario

votos
3

Si se trata de Java que es necesario apuntar a continuación, usted podría funcionar con el motor tsc.js Rhino como parte de su proceso de construcción.

Respondida el 02/10/2012 a las 12:34
fuente por usuario

votos
2

Para compilar TS -> JS: nodo está disponible para todas las plataformas comunes, por lo que no veo por qué te gustaría tener un tsc.java cuando ya tiene un tsc.js. La instalación de nodo no es gran cosa. De hecho, es más fácil que Java.

Una vez que tenga su archivo proj.js, a continuación, puede copiarlo en el que la plataforma nunca despliegue que desea utilizar.

Desde mi punto de vista, JavaScript - o más exactamente ECMAScript es una alternativa a Java. Así que estoy feliz de que yo no tengo que bregar JVM etc para utilizar la herramienta. Pero si usted prefiere Java, entonces ¿por qué molestarse con el JS?

Respondida el 02/10/2012 a las 01:12
fuente por usuario

votos
1

He estado jugando con esto, y puedo compilar mecanografiado con javascript con el siguiente código:

<script src=typescript.js></script>

<script>

var scriptText = ""
        + "/// <reference path=\"test.ts\"/>" + "\r\n"
        + "class Car {"
        + "     constructor (private name: string) { } "
        + "     getName() { "
        + "         var juice = new Juice();"
        + "         return name; "
        + "     } "
        + "} "
        + "var car = new Car('Subaru Impreza');"
        + "console.log(car.getName());";





var TextWriter = function () { };

TextWriter.prototype = {
collected: '',

Write: function (sc) {
    this.collected += sc;
},
WriteLine: function(sc) {
    this.collected += sc + '\n';
},
toString: function() {
    return this.collected;
}
};

var output = new TextWriter();
var tsc = new TypeScript.TypeScriptCompiler(output);

var script = tsc.addUnit(scriptText, "");

tsc.emit();

console.log(output.toString());

</script>

No es exactamente ideales sin embargo. Estoy tratando de conseguir algo corriendo por lo que puede convertir de transcripción de la JS dentro de C # (.NET utilizando Javascript), pero yo estoy poniendo un desbordamiento de pila en la llamada ts.addUnit.

Respondida el 02/10/2012 a las 18:48
fuente por usuario

votos
0

Esto es lo que funcionó para mí:

En primer lugar, se instala el typescript módulo de nodo >> npm install -g typescript. Esto proporciona una utilidad de línea de comandos tsc.

Siguiente, tsc gulpfile.ts gulp-config.ts typings/tsd.d.ts

  • Esto hará transpileel gulpfile.tsy gulp-config.tsarchivos a gulpfile.jse gulp-config.js. Suministramos el typings/tsd.d.tsarchivo como referencia para transpilation correcta.
  • El typescript módulo de nodo cubre muchas opciones >> tsc -hpara especificar el directorio de salida o archivo, etc. .

Espero que esto ayude.

Respondida el 23/05/2016 a las 01:47
fuente por usuario

votos
0

SublimeText2 truco Puede transpile de transcripción de JavaScript directamente desde SublimeText2 (que necesita nodo):

Crear un Typescript.sublime-buildarchivo en /Sublime Text 2/Packages/Usercon este contenido:

{
"cmd": ["tsc", "$file"],
"selector" : "source.ts",
"path": "/usr/local/bin:$PATH"
}

entonces, ahora, puede transpile su código con Ctrl + B o cmd + B

Respondida el 02/10/2012 a las 07:46
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more