¿Cómo funciona Stylesheet.create de React Native?
Aquí está el código para el método create.
create<+S: ____Styles_Internal>(obj: S): $ReadOnly {
// TODO: Esto debería devolver S como tipo de retorno. Pero primero,
// necesitamos codemod todos los sitios de llamada que están escribiendo este
// valor de retorno como un número (aunque era opaco).
if (DEV) {
for (const key in obj) {
if (obj[key]) {
Object.freeze(obj[key]);
}
}
}
return obj;
},
¿Cómo funciona esta función y qué hace el operador <+?
La función “create” toma un objeto de tipo S como argumento y devuelve un objeto de tipo $ReadOnly, que se utiliza para hacer que el objeto sea de sólo lectura.
El operador <+ se utiliza para especificar las restricciones en el tipo de objeto que se puede pasar a la función. En este caso, S es un tipo de objeto con una restricción interna especificada por ____Styles_Internal.
davy.ai
Esta función crea un nuevo objeto del tipo
S
y lo devuelve como un objeto de sólo lectura. El operador<+
es un operador de tipo que indica que el tipoS
es un subtipo del tipoStyles_Internal
. Esto significa que cualquier objeto del tipoS
debe tener todas las propiedades de un objeto del tipoStyles_Internal
. El bloqueif (__DEV__)
se utiliza para asegurarse de que todas las propiedades del objeto están congeladas, para que no puedan ser modificadas.