multiple - typescript object type
Las exportaciones de TypeScript no están definidas (3)
Tienes unas cuantas opciones:
Opción 1: usar un cargador de módulos como Webpack , Browserify, etc.
Opción 2: si solo desea compilar *.ts
a *.js
sin importar o exportar módulos, configure compilerOptions.module
en "none" en su tsconfig.json
. Tenga en cuenta que no podrá exportar / importar módulos cuando configure compilerOptions.module
en "ninguno".
Estoy tratando de usar exportar e importar pero no funciona. Recibo un error.
Aquí está mi código HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
@RenderBody()
<script src="~/scripts/user.js"></script>
<script src="~/scripts/main.js"></script>
</body>
</html>
Usuario.ts:
export class User {
firstName: string;
lastName: string;
}
main.ts
import { User } from "./user";
Aquí también está la captura de pantalla de la excepción:
TypeScript utiliza por defecto la resolución del módulo de nodo. Node.js / CommonJS utiliza la palabra clave de exportación . Sin embargo, CommonJS no se ejecuta en el navegador sin un cargador de módulos o un agrupador de módulos. Por lo tanto, necesita browserify o webpack para que se ejecute en el navegador.
Echa un vistazo a este enlace https://www.typescriptlang.org/docs/handbook/gulp.html
También puede establecer la configuración del módulo en ninguno en la sección de opciones del compilador en tsconfig.json :
{"compilerOptions": {"target": "es5", "module": "none"}}
prueba los siguientes cambios
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
@RenderBody()
<!-- <script src="~/scripts/user.js"></script> --> <!-- not longer needed -->
<script src="~/scripts/main.js"></script>
</body>
</html>
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"outFile": "~/scripts/main.js",
"lib": [
"dom",
"es2015",
"es5",
"es6"
]
}
}
con esta configuración, su salida es solo un archivo js que puede ser uglified wunderfull, que contiene todos los archivos referenciados en main.ts. Simplemente no sé si ~ / funciona o si tiene que configurar la ruta de acceso relativa al archivo de configuración, no estoy trabajando con Linux.
Usuario.ts
class User {
firstName: string;
lastName: string;
}
Principales:
/// <reference path="User.ts" />
// import { User } from "./user"; // not needed if referenced
console.log(new User());
Todas las declaraciones de referencia deben escribirse al principio del archivo.