Búsqueda de sitios web

reactjs - ¿Por qué el código fuente de React está escrito en JavaScript en lugar de TypeScript, pero aún así tiene tipos?


Últimamente estoy leyendo el código fuente de React y acabo de descubrir que todos los archivos son .js en lugar de .ts

Además, en esos archivos .js, en realidad están usando sintaxis de TypeScript, incluyendo tipos y todo.

¿Es esto algún tipo de magia de alto nivel?

Aquí hay una imagen de VS Code mostrando errores

Respuesta #1

Puedes asignar tipos al código JavaScript, eso se llama "Declaración de Tipo de TypeScript", y la extensión es .d.ts. Cuando TypeScript (o también un editor con intellisense) ve un archivo javascript y un archivo .d.ts con el mismo nombre, importará las definiciones de tipos de ese archivo.

Hay un proyecto que tiene como objetivo proporcionar definiciones de tipo para cada biblioteca de JavaScript, tal vez hayas oído hablar de DefinitelyTyped.

Por ejemplo:

// example.js
function hello(name) {
  console.log(`Hello ${name}!`);
}


// example.d.ts
function hello(name: string);


// main.ts
import { hello } from 'example';
hello(42); // Error! "name" must be a string

El mismo sistema se ha utilizado para proporcionar tipos en React

Respuesta #2

El código fuente de React está escrito en Flow. La extensión de archivo sigue siendo .js, y hay tipos en esos archivos. Si Flow no está instalado, VS Code no entiende qué es y simplemente reporta un montón de errores.

Artículos relacionados