[Javascript/jQuery] Equivalente a Type

Inti berdes

Newbie Lvl 3
Hola quisiera saber que es lo más parecido a un Type / end Type de vb6 en javascript.
Disculpen lo breve de la consulta, es eso nomas.
Gracias!
 

walyto132

Newbie Lvl 1
No se si es esto lo que estas buscando pero espero que te sirva.

 

Nicoo.-

-.-
Ex-Staff
Hola! Lo mas cercano que tenes en javascript es un objeto, pero no se parecen en mucho ya que js es un lenguaje de tipado dinamico. Si lo que queres hacer es "forzar" que una estructura tenga ciertas propiedades de cierto tipo, podes usar typescript, y en ese caso lo que tenes que hacer es usar interfaces para definir la estructura y tipado de del objeto.
 

Inti berdes

Newbie Lvl 3
No se si es esto lo que estas buscando pero espero que te sirva.

Yo tampoco pero seguramente si me sirva, muchas gracias!
Hola! Lo mas cercano que tenes en javascript es un objeto, pero no se parecen en mucho ya que js es un lenguaje de tipado dinamico. Si lo que queres hacer es "forzar" que una estructura tenga ciertas propiedades de cierto tipo, podes usar typescript, y en ese caso lo que tenes que hacer es usar interfaces para definir la estructura y tipado de del objeto.
Si vi los objetos, los estuve usando, no es viable hacer un objeto de "objetos" verdad? algo como:
-supongamos que tengo un nombre de obj para el staff y otro para los users y quiero que esos dos datos se guarden como una propiedad de "miobj":

var nombreOBJ = new object()
nombreobj.NombreUsers
nombreOBJ.staff

Var MiObj = new Object()
MiObj.cantidad
MiObj.numerodeobj
MiObj.nombreobj //aca quiero decirle el tipo de dato es decir nombreOBJ as object (si estuviéramos en vb6)
Perdón por lo bruto del ejemplo espero que se entienda.
Voy a leer sobre typescript, saludos y muchas gracias!
 

Nicoo.-

-.-
Ex-Staff
Yo tampoco pero seguramente si me sirva, muchas gracias!

Si vi los objetos, los estuve usando, no es viable hacer un objeto de "objetos" verdad? algo como:
-supongamos que tengo un nombre de obj para el staff y otro para los users y quiero que esos dos datos se guarden como una propiedad de "miobj":

var nombreOBJ = new object()
nombreobj.NombreUsers
nombreOBJ.staff

Var MiObj = new Object()
MiObj.cantidad
MiObj.numerodeobj
MiObj.nombreobj //aca quiero decirle el tipo de dato es decir nombreOBJ as object (si estuviéramos en vb6)
Perdón por lo bruto del ejemplo espero que se entienda.
Voy a leer sobre typescript, saludos y muchas gracias!
En Javascript todo es un objeto, los arrays, las funciones, etc... en el fondo son objetos y pueden tener propiedades. Tu ejemplo mucho no se entiende, pero sí podes asignar un objeto dentro de un objeto.

PD: no uses "var", usa "let" o "const", y en lugar de usar "new Object()" directamente usa la definición literal: let object = { prop: value };

Por ejemplo, para agregar un objeto dentro de otro:

Code:
let object = {
    user: {
        nombre: "usuario"
    },
    grupo: "test"
};
Lo mismo aplica para agregar funciones dentro de un objeto, un array dentro de un objeto, un objeto dentro de un array, etc...
 

Inti berdes

Newbie Lvl 3
Es decir, esto es válido:
Código:
Let continente = {
 (va el let aca?-->)   let worldpos = {
map: 1
x: 50
y: 50 
}
NombreContinente: "América del Sur"
planeta: "Tierra"
}
Otra cosa, si el tipo de dato lo interpreta automáticamente y mi dato por ejemplo es 30(byte) y lo opero haciendo 30 * -1, js directamente lo convierte a int?
 

Nicoo.-

-.-
Ex-Staff
Es decir, esto es válido:
Código:
Let continente = {
(va el let aca?-->)   let worldpos = {
map: 1
x: 50
y: 50
}
NombreContinente: "América del Sur"
planeta: "Tierra"
}
Otra cosa, si el tipo de dato lo interpreta automáticamente y mi dato por ejemplo es 30(byte) y lo opero haciendo 30 * -1, js directamente lo convierte a int?
El código tiene errores de sintaxis, pero salvo eso, es valido. El let se usa solo para definir el objeto principal. Fijate en mi ejemplo que para el objeto "user" no puse "let user =" sino que va directo "user: " como para cualquier otra propiedad. También hay otras maneras de hacerlo, pero para no marearte empeza así.

Por la otra pregunta... para javascript hay un solo tipo de valor numérico y es el tipo Number (https://www.w3schools.com/js/js_datatypes.asp), por lo cual tanto el 30 como el -30 tienen el mismo tipo.
 

Inti berdes

Newbie Lvl 3
El código tiene errores de sintaxis, pero salvo eso, es valido. El let se usa solo para definir el objeto principal. Fijate en mi ejemplo que para el objeto "user" no puse "let user =" sino que va directo "user: " como para cualquier otra propiedad. También hay otras maneras de hacerlo, pero para no marearte empeza así.

Por la otra pregunta... para javascript hay un solo tipo de valor numérico y es el tipo Number (https://www.w3schools.com/js/js_datatypes.asp), por lo cual tanto el 30 como el -30 tienen el mismo tipo.
Más claro imposible.
Muchas gracias, apenas tenga algo hecho lo voy a subir para analizarlo.
Saludos!
 

Bill Claves

Fenix XIII
Hola! Lo mas cercano que tenes en javascript es un objeto, pero no se parecen en mucho ya que js es un lenguaje de tipado dinamico. Si lo que queres hacer es "forzar" que una estructura tenga ciertas propiedades de cierto tipo, podes usar typescript, y en ese caso lo que tenes que hacer es usar interfaces para definir la estructura y tipado de del objeto.
Consulto de curioso, no estaría mejor dicho que es "multi-paradigma" en vez de "un lenguaje de tipado dinamico"?
 

Nicoo.-

-.-
Ex-Staff
Consulto de curioso, no estaría mejor dicho que es "multi-paradigma" en vez de "un lenguaje de tipado dinamico"?
No, son cosas diferentes. Tipado dinamico se refiere a que el tipo de datos está asociado al valor y no a la variable, por ejemplo en javascript podes hacer algo así y sería totalmente válido:

JavaScript:
let a = 10;
a = "string";
a = {};
a = null;
En los lenguajes de tipado estatico no se puede hacer... por ej si vos tenes una variable que es un int, no le podes asignar un string.

En javascript no tiene sentido usar types definidos por el usuario porque cualquier variable puede adoptar la forma que necesites, y si tenes alguna incompatibilidad te vas a enterar en tiempo de ejecución. Por eso con typescript y el uso de interfaces "solucionas" ese problema.

Los paradigmas son algo totalmente distinto, y podes tener un lenguaje multiparadigma de tipado estatico o un lenguaje multiparadigma de tipado dinamico.
 
Arriba