You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
12 Hrs
38 Min
49 Seg
Curso de TypeScript

Curso de TypeScript

Nicolas Molina

Nicolas Molina

Configurado nuestro proyecto

3/24
Resources

We arenot going to install TypeScript globally, but only for the project, as this is normally done in the real world. We work on a per-project basis.

Let's do the following steps:

  1. We create a folder for our project (whatever name you want) and enter it. Using the terminal it would be the following:
mkdir ts-projectcd tsc --version
  1. We open our code editor from the location of the project folder. If you use Visual Studio Code, using the terminal is like this:
code .
  1. We will create the following files:
  • A .gitignore file in the editor or from the terminal. For its content, we can use the gitignore.io page. In our program we will need the following specifications:
    Página de gitignore

Then we copy what the web generates for us and paste it into our gitignore from our code editor.

  • An .editorconfig file (optional), if you are using Visual Studio Code, in order to give a simple and easy configuration when executing code. Here copy and paste the following:
# Editor configuration, see https://editorconfig.orgroot = true[*]charset = utf-8indent_style = spaceindent_size = 2insert_final_newline = truetrim_trailing_whitespace = true[*.ts]quote_type = single[*.md]max_line_length = offtrim_trailing_whitespace = false

For this configuration to work you must have the following extension installed in your Visual Studio Code:
Extensión EditorConfig

  1. We will also need to have created a folder named src inside our project.
  2. Now we will create our package.json file in a simple way from the terminal and inside the project path:
npm init -y

This should be how our project should be set up before the last step
Archivos de configuración

  1. Finally, let's install TypeScript 😊. From the terminal and inside the project path, run:
npm install typescript --save-dev

To verify the installed version:

npx tsc --version

Contributed by: Martin Alvarez.

Contributions 45

Questions 10

Sort by:

Want to see more contributions, questions and answers from the community?

Cortaron donde genera el package.json.
Igual, lo pueden generar con una configuración estándar :

npm init -y

Like si usas la bandera “-D” en lugar de “–save-dev”-

Todos los cursos de Nicolás son brutales, se los recomiendo

Codigo de la clase

Recuerda que para installar typescript debes tener instalado Node.js

.
.editorconfig

<# Editor configuration, see https://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_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
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-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/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity 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
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if 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/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

### Node Patch ###
# Serverless Webpack directories
.webpack/

# Optional stylelint cache

# SvelteKit build / generate output
.svelte-kit

### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

# End of https://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.

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.

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😁

.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
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-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/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity 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
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if 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/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

### Node Patch ###
# Serverless Webpack directories
.webpack/

# Optional stylelint cache

# SvelteKit build / generate output
.svelte-kit

### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

# End of https://www.toptal.com/developers/gitignore/api/windows,macos,linux,node

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.

editorconfig :


   
# Editor configuration, see https://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_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.

Aqui el enlace de TypeScript online: https://www.typescriptlang.org/play?#code/Q

Organizando el entorno de desarrollo:

  1. Visitar gitignore
  2. elegir So y lenguaje. Para ts o js es node.
  3. Copiar y pegar en el arachivo .gitignore.
  • Crear el archivo .editorconfig con lo siguiente:
# Editor configuration, see https://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.ts]
quote_type = single

[*.md]
max_line_length = off
trim_trailing_whitespace = false
  • Crear una carpeta vacia src.

  • En consola ejecutar lo siguiente:

npm install typescript --save-dev

otra formita:

npm install typescript -D
No me reconoce el comando npm init -y
buen dia como instalo el Package? de antemano gracias
A alguien le ah pasado ese error? ![](https://static.platzi.com/media/user_upload/image-c707625e-865f-445b-afc2-828c0ad5b915.jpg)
Algo que no incluyo en la clase fue el instalar Node.js que es lo primero antes de instalar el resto
Alguien sabe por que al instalar lo spaquetes de "install typescript" marca esto : ![](https://static.platzi.com/media/user_upload/image-400385bd-bdce-48e2-b461-1bf3ec552c72.jpg)![]()
:)
Se esta poniendo bueno!!

Por si no saben que es npx
Documentación

npm install typescript --save-dev
npx tsc --version

Si a alguno le sirve, yo uso este simulador de código para realizar pruebas rápidas, sobre todo para no hacer instalaciones de librerías y probar cosas sencillas. Sirve para Javascript, Typescript y React

playcode.io

Si tienen la version 5.x.x de typescript y la version de node 12.x puede generar un errror similar a este

typescript/lib/tsc.js:93 for (let i = startIndex ?? 0; i < array.length; i++) {

Mi solucion fue hacer dowgrade de la version de typesript a la 4.9.5

git init

Dos cosas maravillosas que aprendí en esta clase:

  1. La creación del archivo gitignore dependiendo de las necesidades que tenemos https://www.toptal.com/developers/gitignore
  2. La creación de package.json básico con este comando npm init -y

Me encanta como explica el profesor es pausado y se le entiende el tema.

Buen desafío inicial!!

Me invertí muchas horas buscando como configurar los gitignore, esta info no tiene precio.
“GITIGNORE”:
URL

Falta indicar en que momento debemos instalar git

npx ya viene junto con npm sino:

npm install -g npx 

su distintivo es que si quieres probar una librería la puedes probar sin necesidad de instalar en local o global.

En mi caso prefiero usar yarn

yarn add typescript --dev

Instalación de TypeScript

npm install typescript --save-dev

Estamos instalando TS de forma local para solo trabajar en una carpeta (así es un flujo profesional normal).

No es recomendable trabajar con TS de forma global.

npx

Con npx nosotros podemos ejecutar las utilidades que antes instalamos.

npx tsc --version

Ver la versión de TS actual.

@Nicobytes ha mejorado mucho como profe!

Install typescript
NPM = npm typescript --save-dev
YARN = yarn add typescript --dev

Me encantó el tema de la terminal.
Creo que es el shell zsh con el tema “gnzh” (al menos en mi linux ubuntu).
Ya lo tengo instalado… 😉

Para instalar TS en nuestro proyecto: npm i typescript -D y luego -> npx tsc --version

gitignore.io

buen tip @oscarfuentes81

**Configurando Nuestro Proyecto TypeScript** Ahora que hemos explorado un poco de teoría sobre TypeScript, es momento de poner en práctica lo aprendido. En esta sección, configuraremos nuestro proyecto para implementar TypeScript de manera efectiva. Veremos cómo instalar TypeScript y establecer la estructura básica del proyecto. **Instalación de TypeScript** Para comenzar, es importante tener en cuenta que no instalaremos TypeScript de forma global. En este curso, la instalación será específica para el proyecto en el que estamos trabajando, tal como se hace en entornos de producción reales. Esto asegura que cada proyecto tenga su propia versión de TypeScript, evitando conflictos entre diferentes proyectos. **Pasos para instalar TypeScript:** 1\. Instalar TypeScript como dependencia de desarrollo: Abre la terminal y dirígete al directorio donde deseas crear tu proyecto. Por ejemplo: `cd ~/Documentos/Platzi/Cursos` 2\. Crear un nuevo directorio para el proyecto: Crea un nuevo directorio llamado My-TypeScript-Project: `mkdir My-TypeScript-Project` 3\. Entrar al directorio del proyecto: `cd My-TypeScript-Project/` 4\. Inicialización del Proyecto con package.jsonComo nuestro proyecto tendrá dependencias, necesitaremos un archivo package.json para gestionar esas dependencias. Vamos a crear el package.json con el siguiente comando en la raíz de tu proyecto: `npm init -y` Esto generará un package.json con la configuración básica. Con el package.json en su lugar, ahora podemos instalar TypeScript y cualquier otra dependencia que necesitemos en el futuro. 5\. Instalar TypeScript: Ahora, instala TypeScript como una dependencia de desarrollo usando npm con la bandera --save-dev que basicamente instala la dependencia solo para el proyecto. `npm install typescript --save-dev` 6\. Verificar la instalación: Para confirmar que TypeScript se ha instalado correctamente, ejecuta el siguiente comando: `npx tsc --version` Si todo es correcto deberia darnos el nombre de la version en consola, algo asi como: Version 5.6.2. Si no aparece o simplemente sale un error indicando que no existe ese comando, es porque hubo un error en la instalacion y deberas volver a ejecutar los pasos anteriores en el mismo orden.