Por que al sobrescribir el valor del atributo de un objeto que es solo de lectura, en javascript lo sobrescribe? <code>interface User { ...

German Vera

German Vera

Pregunta
student
hace 5 años

Por que al sobrescribir el valor del atributo de un objeto que es solo de lectura, en javascript lo sobrescribe?

interface User { readonly id: number; username: string; isPro: boolean; } let user: User; user = { id: 2, username: 'luis', isPro: true }; user.id = 3; // Error, pero en javascript si lo sobrescribe user.username = 'moraes'; console.log(user);
2 respuestas
    David Prieto Cornejo

    David Prieto Cornejo

    student
    hace 5 años

    Básicamente porque Js no es un lenguaje tipado, por eso es que existe Ts. Pero Ts solo tiene sentido en tiempo de compilación, mostrando errores y arrojando excepciones, es una herramienta para el desarrollador.

    Si bien Ts compila a Js, no tiene la facultad para forzar funcionalidades que Js de base no soporta. Por ej.

    /*TS*/ let Bar: string = 'Mi cadena'; Bar = false; //error TS

    Si bien la asignación a boolean es entendida como un error para Ts, esto se compila a:

    /*JS*/ let Bar = "mi cadena"; Bar = false; /*Ok*/

    Let admite cualquier tipo de primitiva del lenguaje de Js. No obstante, talvez en el contexto de tu app esto podría devenir a un error en tiempo de ejecución, dado que Bar debía procesarse como una cadena. Ts te ayuda entonces a preveer el error en tiempo de compilación!

    Moisés Manuel Morín Hevia

    Moisés Manuel Morín Hevia

    student
    hace 5 años

    Lo va a sobreescribir en JS pero en TS te va a marcar error (osea va a correr pero vas a tener errores) Js es debilmente tipado el compilador del navegador va a interpretarlo.

Curso de Typescript [Empieza Gratis]

Curso de Typescript [Empieza Gratis]

Typescript es un lenguaje de programación que agrega un conjunto de reglas sintácticas a Javascript; se ha popularizado por aportar características de tipado a Javascript. Mejora tus habilidades para desarrollar aplicaciones web aprendiendo Typescript, con este lenguaje lograrás reducir los errores en tu código y aumentar tu productividad.

Curso de Typescript [Empieza Gratis]

Curso de Typescript [Empieza Gratis]

Typescript es un lenguaje de programación que agrega un conjunto de reglas sintácticas a Javascript; se ha popularizado por aportar características de tipado a Javascript. Mejora tus habilidades para desarrollar aplicaciones web aprendiendo Typescript, con este lenguaje lograrás reducir los errores en tu código y aumentar tu productividad.