No vamos a instalar TypeScript de manera global, sino solo para el proyecto, ya que normalmente así se hace en mundo real. Se trabaja por proyecto.
Realicemos los siguientes pasos:
Creamos una carpeta para nuestro proyecto (el nombre que desees) e ingresamos a la misma. Mediante la terminal sería lo siguiente:
mkdir ts-project
cd tsc --version
Abrimos nuestro editor de código desde la ubicación de la carpeta del proyecto. Si usas Visual Studio Code, usando la terminal es así:
code .
Crearemos los siguientes archivos:
Un archivo .gitignore en el editor o desde la terminal. Para su contenido, podemos utilizar la página gitignore.io. En nuestro programa necesitaremos las siguientes especificaciones:
Luego copiamos lo que nos genera la web y lo pegamos en nuestro gitignore desde nuestro editor de código.
Un archivo .editorconfig (opcional), si estás usando Visual Studio Code, con el fin de dar una configuración simple y sencilla a la hora de ejecutar código. Aquí copia y pega lo siguiente:
# Editor configuration, see https://editorconfig.orgroot =true[*]charset = utf-8indent_style = space
indent_size =2insert_final_newline =truetrim_trailing_whitespace =true[*.ts]quote_type = single
[*.md]max_line_length = off
trim_trailing_whitespace =false
Para que funcione esta configuración debes tener instalado la siguiente extensión en tu Visual Studio Code:
Necistaremos también tener creado una carpeta de nombre src dentro de nuestro proyecto
Ahora crearemos nuestro archivo package.json de manera simple desde la terminal y dentro de la ruta del proyecto:
npm init -y
Así debería estar quedando conformado nuestro proyecto previo al último paso
Finalmente, instalemos TypeScript 😊. Desde la terminal y dentro de la ruta del proyecto, ejecuta:
Cortaron donde genera el package.json.
Igual, lo pueden generar con una configuración estándar :
npm init -y
Muy util
Muchas Gracias!
Like si usas la bandera "-D" en lugar de "--save-dev"-
minimizando keystrokes desde que se invento el lenguaje
Es útil, aunque -save-dev es "self explanatory". Team -save-dev
Todos los cursos de Nicolás son brutales, se los recomiendo
Totalmente de acuerdo contigo
confirmo ✨
Codigo de la clase
Recuerda que para installar typescript debes tener instalado Node.js
.
.editorconfig
<# Editor configuration, see https://editorconfig.orgroot =true[*]charset = utf-8indent_style = space
indent_size =2insert_final_newline =truetrim_trailing_whitespace =true[*.ts]quote_type = single
[*.md]max_line_length = off
trim_trailing_whitespace =false>
.gitignore
<# Created by https://www.toptal.com/developers/gitignore/api/windows,macos,linux,node
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,macos,linux,node
### Linux ###
*~# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*# KDE directory preferences
.directory# Linux trash folder which might appear on any partition or disk
.Trash-*# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
# General.DS_Store.AppleDouble.LSOverride# Icon must end with two \r
Icon# Thumbnails._*# Files that might appear in the root of a volume
.DocumentRevisions-V100.fseventsd.Spotlight-V100.TemporaryItems.Trashes.VolumeIcon.icns.com.apple.timemachine.donotpresent# Directories potentially created on remote AFP share
.AppleDB.AppleDesktopNetworkTrashFolderTemporaryItems.apdisk### Node ###
# Logslogs
*.lognpm-debug.log*yarn-debug.log*yarn-error.log*lerna-debug.log*.pnpm-debug.log*# Diagnosticreports(https://nodejs.org/api/report.html)report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json# Runtime data
pids
*.pid*.seed*.pid.lock# Directoryfor instrumented libs generated by jscoverage/JSCoverlib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output# Grunt intermediate storage(https://gruntjs.com/creating-plugins#storing-task-files).grunt# Bower dependency directory(https://bower.io/)bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons(https://nodejs.org/api/addons.html)build/Release# Dependency directories
node_modules/jspm_packages/# Snowpack dependency directory(https://snowpack.dev/)web_modules/# TypeScript cache
*.tsbuildinfo# Optional npm cache directory
.npm# Optional eslint cache
.eslintcache# Optional stylelint cache
.stylelintcache# Microbundle cache
.rpt2_cache/.rts2_cache_cjs/.rts2_cache_es/.rts2_cache_umd/# OptionalREPL history
.node_repl_history# Outputof'npm pack'*.tgz# YarnIntegrity file
.yarn-integrity
# dotenv environment variable files
.env.env.development.local.env.test.local.env.production.local.env.local# parcel-bundler cache(https://parceljs.org/).cache.parcel-cache
# Next.js build output
.nextout
# Nuxt.js build / generate output
.nuxtdist
# Gatsby files
.cache/# Commentin the public line inif your project uses Gatsby and not Next.js# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp# Docusaurus cache and generated files
.docusaurus# Serverless directories
.serverless/# FuseBox cache
.fusebox/# DynamoDBLocal files
.dynamodb/# TernJS port file
.tern-port
# StoresVSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml.yarn/install-state.gz.pnp.*### NodePatch ###
# ServerlessWebpack directories
.webpack/# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
### Windows ###
# Windows thumbnail cache files
Thumbs.dbThumbs.db:encryptable
ehthumbs.dbehthumbs_vista.db# Dump file
*.stackdump# Folder config file
[Dd]esktop.ini# RecycleBin used on file shares
$RECYCLE.BIN/# WindowsInstaller files
*.cab*.msi*.msix*.msm*.msp# Windows shortcuts
*.lnk# Endofhttps://www.toptal.com/developers/gitignore/api/windows,macos,linux,node>
Instalar Typescript de manera local, no local.
<npm install typescript --save-dev>
No es aporte, es queja: La edición de esta clase es terrible.
El audio estuvo raro por momento y se cortaron instrucciones del profesor...
Les dejo el comando para generar el package json, no viene en la clase:
npm init
Respondes las preguntas que hace el asistente (o solo enter y enter y enter) y con eso tienes tu package.json
Si acaso necesitaras actualizar tu typescript global porque no está al día o lo que sea, te dejo el siguiente comando:
npm install -g typescript@latest
Esto porque a veces npm update nos dice que todo está al día, yo trabajaré con el typescript global y te dejo esto por si también es tu caso.
Igual me estoy adelantando bastante, pero si quieren correr un archivo .ts sin compilarlo previamente con tsc, la dependency por excelencia es "ts-node".
pueden instalarlo igual como
npm i ts-node -D
y luego con npx:
npx ts-node index.ts
El archivo ".editorconfig" es un archivo de configuración que se utiliza para mantener la consistencia en el estilo de codificación entre diferentes editores de texto y entornos de desarrollo. Proporciona una forma de especificar y aplicar reglas de formato de código en un proyecto, independientemente del editor utilizado por los desarrolladores.
.
El archivo ".editorconfig" contiene una serie de secciones y reglas que definen cómo debe formatearse el código en diferentes tipos de archivos. Aquí hay una explicación de las reglas específicas en el archivo que has proporcionado:
.
root = true: Esta línea indica que este archivo es la raíz de la configuración y se aplicará a todo el proyecto. Es importante tener solo un archivo ".editorconfig" en la raíz del proyecto.
[*]: Esta sección se aplica a todos los archivos sin importar su extensión.
charset = utf-8: Esta regla establece que el juego de caracteres utilizado en los archivos debe ser UTF-8.
indent_style = space: Indica que el estilo de indentación debe ser con espacios en lugar de tabulaciones.
indent_size = 2: Establece el tamaño de la indentación a 2 espacios.
insert_final_newline = true: Esta regla asegura que se inserte una línea en blanco al final de cada archivo.
trim_trailing_whitespace = true: Indica que se deben eliminar los espacios en blanco al final de cada línea.
[*.ts]: Esta sección se aplica a los archivos con extensión ".ts" (archivos de TypeScript).
quote_type = single: Establece que las comillas utilizadas en los archivos TypeScript deben ser comillas simples ('').
[*.md]: Esta sección se aplica a los archivos con extensión ".md" (archivos Markdown).
max_line_length = off: Desactiva la limitación de longitud de línea para los archivos Markdown.
trim_trailing_whitespace = false: Evita eliminar los espacios en blanco al final de cada línea en los archivos Markdown.
.
En resumen, el archivo ".editorconfig" se utiliza para definir y mantener la consistencia en la configuración del formato de código en un proyecto, lo que facilita la colaboración y la lectura del código en diferentes editores y entornos de desarrollo.
gracias por el aporte, ya me tocaba investigar por aparte para realmente entender
Gracias por el aporte Andre, solo tengo la duda si la respuesta la conseguiste en Chat-GPT ya que se me hizo familiar, no es critica solo me dio curiosidad jeje, gracias por el aporte!
Lo que se hizo fue instalar TS con este comando
npm install typescript --save-dev
Y con eso tenemos acceso al compilador de TS, el cual lo corremos de la siguiente manera
npx tsc
En este caso solo pintamos la version con la flag --version
Yo lo hice con vite😁
Yo igual. Desde que empecé a aprender React, empecé a usarlo y me simplificó la vida.
x2
.gitignore para windows mac linux node contiene:
# Created by https://www.toptal.com/developers/gitignore/api/windows,macos,linux,node
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,macos,linux,node
### Linux ###
*~# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*# KDE directory preferences
.directory# Linux trash folder which might appear on any partition or disk
.Trash-*# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
# General.DS_Store.AppleDouble.LSOverride# Icon must end with two \r
Icon# Thumbnails._*# Files that might appear in the root of a volume
.DocumentRevisions-V100.fseventsd.Spotlight-V100.TemporaryItems.Trashes.VolumeIcon.icns.com.apple.timemachine.donotpresent# Directories potentially created on remote AFP share
.AppleDB.AppleDesktopNetworkTrashFolderTemporaryItems.apdisk### Node ###
# Logslogs
*.lognpm-debug.log*yarn-debug.log*yarn-error.log*lerna-debug.log*.pnpm-debug.log*# Diagnosticreports(https://nodejs.org/api/report.html)report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json# Runtime data
pids
*.pid*.seed*.pid.lock# Directoryfor instrumented libs generated by jscoverage/JSCoverlib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output# Grunt intermediate storage(https://gruntjs.com/creating-plugins#storing-task-files).grunt# Bower dependency directory(https://bower.io/)bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons(https://nodejs.org/api/addons.html)build/Release# Dependency directories
node_modules/jspm_packages/# Snowpack dependency directory(https://snowpack.dev/)web_modules/# TypeScript cache
*.tsbuildinfo# Optional npm cache directory
.npm# Optional eslint cache
.eslintcache# Optional stylelint cache
.stylelintcache# Microbundle cache
.rpt2_cache/.rts2_cache_cjs/.rts2_cache_es/.rts2_cache_umd/# OptionalREPL history
.node_repl_history# Outputof'npm pack'*.tgz# YarnIntegrity file
.yarn-integrity
# dotenv environment variable files
.env.env.development.local.env.test.local.env.production.local.env.local# parcel-bundler cache(https://parceljs.org/).cache.parcel-cache
# Next.js build output
.nextout
# Nuxt.js build / generate output
.nuxtdist
# Gatsby files
.cache/# Commentin the public line inif your project uses Gatsby and not Next.js# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp# Docusaurus cache and generated files
.docusaurus# Serverless directories
.serverless/# FuseBox cache
.fusebox/# DynamoDBLocal files
.dynamodb/# TernJS port file
.tern-port
# StoresVSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml.yarn/install-state.gz.pnp.*### NodePatch ###
# ServerlessWebpack directories
.webpack/# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
### Windows ###
# Windows thumbnail cache files
Thumbs.dbThumbs.db:encryptable
ehthumbs.dbehthumbs_vista.db# Dump file
*.stackdump# Folder config file
[Dd]esktop.ini# RecycleBin used on file shares
$RECYCLE.BIN/# WindowsInstaller files
*.cab*.msi*.msix*.msm*.msp# Windows shortcuts
*.lnk# Endofhttps://www.toptal.com/developers/gitignore/api/windows,macos,linux,node
Orale como así que existía una pagina para hacer el git ignore!!
Comando para iniciar el proyecto
npx tsc --init
no entendí por que cortaron lo de generar el json, digo si, ahí está en los recursos, pero como que solo aparece sin explicación, medio absurdo en un curso de fundamentos.
Hola, tienes razón. Ahora, la explicación es:
a) cuando se ejecuta el comando:
npm install typescript --save-dev
Se crea de forma automática el archivo package.json para registrar la dependencia que contendrá el proyecto, en este caso, typescript.
Una vez resuelta la descarga, npm genera el archivo package-lock.json, que contiene la versión exacta de los paquetes instalados, el árbol de dependencias completo y los códigos de integridad (integrity).
Conforme se agreguen más dependencias mediante la terminal, estas se verán reflejadas en el archivo package.json, mientras que los detalles técnicos de su instalación se registrarían en el archivo package-lock.json.
Como soluciono este error?
PSC:\Users\xx\OneDrive\Documentos\sebastian\ts-project> npm install typescript --save--dev
npm ERR! code ETIMEDOUTnpm ERR! syscall connect
npm ERR! errno ETIMEDOUTnpm ERR! network request to https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz failed,reason: connect ETIMEDOUT2606:4700::6810:1323:443npm ERR! network This is a problem related to network connectivity.npmERR! network In most cases you are behind a proxy or have bad network settings.npmERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.See:'npm help config'npm ERR!A complete log ofthis run can be found in:npm ERR!C:\Users\xx\AppData\Local\npm-cache\_logs\2023-04-27T16_23_06_429Z-debug-0.log
puede que tengas un proxy. prueba escribir este comando en la consola y luego ejecutar el comando para instalar TS.
y porque cortan partes del video el package.json aparece de la nada
El comando que se usa es
npm init -y
A alguien le pasa que intentan hacer el Gitignore por la pagina que muestra el profe pero no funciona. Cuando presiono "Create" muestra lo siguiente:
Hola, que raro parece ser un bug en la página ya probé y me funciona tal vez refrescando y limpiando el caché te funcione.
tengo el mismo problema
editorconfig :
# Editor configuration, see https://editorconfig.orgroot =true[*]charset = utf-8indent_style = space
indent_size =2insert_final_newline =truetrim_trailing_whitespace =true[*.ts]quote_type = single
[*.md]max_line_length = off
trim_trailing_whitespace =false
Para los que usan yarn solo es una alternativa a npm, yarn hace un poco más rápido la instalación de paquetes, pero es la misma usen cualquiera y el tiempo dirá cual se queda o ambas, y para los que tengan dudas sobre la bandera -y solo es decir --yes a todas las preguntas al crear el init y sin -y te hará preguntas que en lo personal prefiero.