type multiple literal typescript model-view-controller

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.