Este compilador lo que realmente hace es transpilar, pues ni el navegador ni Node.js (a abril de 2022) pueden leer nativamente archivos TypeScript, por lo que realiza un proceso de traducción en la que su código lo convierte a JavaScript.
Compilación de archivos TypeScript desde Node.js
Para realizar el proceso de transpilación en Node.js, ejecutemos lo siguiente en la terminal:
npx tsc archivo_typescript.ts
Tras esto, se creará un archivo JavaScript dentro de la misma carpeta donde este tu archivo TypeScript y con el mismo nombre. Por ejemplo, en nuestro proyecto realizamos esa operación dentro de la carpeta src con el archivo 01-hello.ts, dando como resultado:
Compilación a una versión específica
Podemos hacer que nuestro archivo TypesSript sea transpilado a un archivo JavaScript, por ejemplo, con el estándar ECMAScript 6. Para ello ejecutemos:
npx tsc archivo_typescript.ts --target es6
Enviando compilación a una carpeta
Si deseas que los archivos transpilados no se generen en la misma carpeta donde están tus archivos TypeScript, puedes indicarle al compilador hacia donde quieres que vayan:
Deno, del mismo creador de Node.js, es un nuevo entorno de ejecución para JavaScript que puede correr también nativamente TypeScript. Sin embargo, aún no tiene la madurez en el ecosistema de Node.js
error TS6053:File'src/*.ts' not found.The file is in the program because:Root file specified for compilation
Se resuelve creando un archivo tsconfig.json.
Pasos:
1 Posicionarte en el directorio raíz de tu proyecto.
Ejecutar el comando "tsc --init"
Esto creará el archivo tsconfig.json
Ejecutar el comando "npx tsc -p ./ -w"
Esto compilará en el mismo directorio todos tus archivos .ts
Modificar el target o el destino (para enviar los compilados a /dist) En el archivo tsconfig.json busca la bandera "outDir" y modifícala para que quede así: "outDir": "./dist",
Listo, ya tienes configurado lo necesario para seguir el curso tal cual (hasta el momento).
Nota: El tsconfig ya viene configurado para compilar a ES6, en caso de que quieras cambiar, busca la línea "target" y modifícala con el valor que necesites.
Espero le sirva a alguien.
Que detallaso, gracias
Gracias!
el nombre Deno surgió de invertir Node... #theMoreYouKnow
pero Deno invertido no es Node, es Oned
deno-Js (del creador de node-js) permite codificar directamente en TypeScript sin tanto show de configuración de entorno ...claro que su desarrollo aún es temprano ...
Si al ejecutar este comando 'npx tsc src/*.ts --target es6 --outDir dist', te aparece este error en consola:
Puedes ejecutar el mismo comando, pero en una terminal bash y ya no te aparecerá ese error y la compilación se realizará como lo indica el profesor
Sip, sí funciona
Con que shell sale ese error? ZSH?
El compilador de TS
El código TS no es leído por navegadores ni servidores. Lo que se hace es transpilarlo a JS.
Podemos seleccionar una versión en específico de TS e indicar en dónde queremos que guarde el archivo JS: npx stc src/*.ts --target es6 --outDir dist
O mejor crea un archivo de configuración: tsc --init
Ese tipo de cosas hacen que javascript a veces sea tedioso de usar, typescript resuelve la mayoría de estos casos, ya de los tipos ni hablemos.
A cualquier desarrollador le conviene usar typescript.
Cuando dices 'este tipo de cosas' a que te refires ?
Hola Ramses, a los errores que viste durante la clase, que son cosas que fallarían en tiempo de ejecución. Hace rato alguien me dijo en twitter que TS es "lo que hace que Javascript se porte bien".
Creo que lo ejemplifica muy bien. Saludos!
También se puede crear un archivo tsconfig.json con la configuración para utilizar tsc
En la linea 16 del archivo demo.ts me subraya el prize, tomo del navegador lo que me responde la API y debería ser price. Aún así me sigue subrayando el error. Alguien le pasó lo mismo?
Me sucede lo mismo
a mi igual
Hola a todos, a los que estan comenzando este curso les recomiendo algo . Cuando usen el comando npx tsc src/demo.ts --target es6 , les recomiendo que en lugar de es6 usen por ejemplo es2021, que fue el que yo use, porque al usar es6 devuelve el archivo demo.js con codigo muy viejo en algunas partes.
No podemos sumar un objeto con un número pero podríamos combinarlos no ? 😛
const rta ={...person, limit};
por fin entiendo porque todo el mundo ama TypeScript
function getTotal() {
let total = 0;
for (let i = 0; i < products.length; i++) {
total += products[i].prize;
}
no me reconoce el .prize me tira error
Hola, Jose. 👋 ¿Qué error te tira? ¿Qué dice el error?
Con npx tsc --init --target es6 pueden crear la configuración para un proyecto en typescript
Pendientes a bun.js, que es un nuevo Runtime All-in-One que promete, además de poder correr TypeScript directamente sin necesidad de transpilar a JS (pero sin dejar de soportarlo), viene con su propio bundler, transpiler y cliente npm integrados (retrocompatible con paquetes de Node), con velocidades de ejecución hasta 3 veces mayores (siempre que el servidor esté en la misma región o se use un CDN para los archivos estáticos o Containers para el despliegue de las Apps). Aún está en fase Beta por lo que nos toparemos con algunos bugs en el corto plazo, pero apuesto que en menos de 5 años todos los navegadores van a empezar a ejecutar código TypeScript directamente, y en unos 10~15 años, JS quedará practicamente deprecado, jamás volveremos a ver el caos de JS, preocupados por los types, el código espagueti, los call back hell o el hoisting... El futuro de la Web es casi útopico, como el interfaz USB-C, todo lo que los mil millones de "USB" debieron ser desde el inicio... Que buenos tiempos para estar vivo y trabajar en la Industria Tech :')
#CursoBunJS-Platzi
#TypeScriptForever
mil gracias
TS resuelve la mayoria de procesos que llegan a ser algo tediosos en JS
Creo que se debería enseñar directamente a usar el ts config para evitar confusiones.
¿está muerto deno? Me parece escucharlo ahora mucho menos que antes.
¿Alguien sabe si murió así o por qué se habla menos ahora?
Gracias.
Hola, no creo que este muerto solo que es una tecnología que va a tardar en verse en todos lados por ahora igual puedes estar atento al blog oficial
a alguno le dio este error?
npx tsc src/*.ts --target es6 --outDir dist
error TS6053: File 'src/*.ts' not found.
The file is in the program because:
Root file specified for compilation
Found 1 error.
Entiendo que en nuevas versiones de typescript ya se escuchan todos los archivos ts por default, puedes probar usando:
tsc -w
Si no, hay que crear un tsconfig.json y ejecutar **tsc **(en el mismo directorio en el que estás)
Bueno despues de ver que uno lo puede configurar desde tsConfig.json para que lo automatice pues mejor
Summary
⚙ In the compilation process of TypeScript; TypeScript compiler (tsc) converts code to ES3/ES5/ES6.
⠀⠀
🤷♂️Why it is necessary to do this transpilation/compilation?Well, TypeScript isn’t supported by the browser, and Node.js
⠀⠀
‼👀 Deno it’s a library that is already supported, an alternative to Node.js
⠀⠀
👴 Why older versions?Wheter in case that we need to migrate from Javascript or basically we need to run that code in all the browsers (recommend version would be ES5) 😉
probe la extension .ts con node y ejecuto el archivo .ts
quizas porque es algo muy simple como un console.log
si, es porque node.js corrió esperando encontrar sintaxis javascript válida y así fue. No se guía por la extension del archivo.
Puedes hasta ejecutar un .txt jeje
node /dist/archivo.txt;
/**ARCHIVO DE TEXTO/
console.log("hello world");
let a = 10;
console.log(a + 50)