Tengo un proyecto grande y deseo comenzar a migrar a Typescript un componente a la vez.
He intentado --with-typescript, pero eso me obliga a cambiar el nombre de todos los archivos a la vez. Me gustaría convertir lentamente, asegurándome de que los archivos no convertidos mantengan su extensión inicial mientras que los archivos nuevos adoptan extensiones de archivo mecanografiado.
¿Cómo hago esto en razzle?
Oye, también me estoy costando mucho intentar que el ejemplo with-typescript
funcione con archivos jsx
para permitir la migración progresiva de proyectos existentes.
¿Alguien tiene una idea de cómo archivar este objetivo?
¡Lo averigué!
npm i -D @babel/preset-typescript ts-loader typescript
Agregar @babel/typescript
a .babelrc
"presets": [
"razzle/babel",
"@babel/typescript"
]
Agregue esto a razzle.config.js
config.resolve.extensions = config.resolve.extensions.concat(['.ts', '.tsx']);
config.module.rules.push({ test: /\.tsx?$/, loader: 'ts-loader' });
Crea un tsconfig.json
{
"compilerOptions": {
"experimentalDecorators": true,
// Target latest version of ECMAScript.
"target": "esnext",
// Search under node_modules for non-relative imports.
"moduleResolution": "node",
// Process & infer types from .js files.
"allowJs": false,
// Enable strictest settings like strictNullChecks & noImplicitAny.
"strict": false,
// Disallow features that require cross-file information for emit.
"isolatedModules": true,
// Import non-ES modules as default imports.
"esModuleInterop": true,
"jsx": "react"
},
"include": [
"src"
],
"exclude": [
"node_modules",
]
}
Eso es todo, ahora puede cambiar el nombre de las extensiones a .ts y .tsx para habilitar el mecanografiado para esos archivos.
Si vienes aquí desde el futuro, echa un vistazo al gran complemento de mecanografiado compatible con razzle aquí .
Comentario más útil
¡Lo averigué!
npm i -D @babel/preset-typescript ts-loader typescript
Agregar
@babel/typescript
a .babelrcAgregue esto a razzle.config.js
Crea un tsconfig.json
Eso es todo, ahora puede cambiar el nombre de las extensiones a .ts y .tsx para habilitar el mecanografiado para esos archivos.