Mientras incursionaba con el mecanografiado, me di cuenta de que mis clases dentro de los módulos (utilizados como espacios de nombres) no estaban disponibles para otras clases a menos que escribiera la exportpalabra clave antes de ellas, como:
module some.namespace.here
{
export class SomeClass{..}
}
Entonces ahora puedo usar el código anterior como este:
var someVar = new some.namespace.here.SomeClass();
Sin embargo, me preguntaba por qué esta palabra clave se usa en lugar de solo usar la publicpalabra clave que se usa a nivel de método para indicar que un método o propiedad debe ser accesible externamente. Entonces, ¿por qué no usar este mismo mecanismo para hacer que las clases e interfaces, etc., sean visibles externamente?
Esto daría un código resultante como:
module some.namespace.here
{
public class SomeClass{..}
}
fuente

Algunas cosas para agregar a la respuesta de Steve Fenton:
exportya significa dos cosas diferentes (dependiendo de si está en el nivel superior o no); lo que significa que un tercio es probablemente peor que agregarpublic/privatepublicvsexportes trivial. Ya hemos cambiado las palabras clave en un montón; no es dificil.export(unexport??), por lo queprivatees la opción lógica. Una vez que lo haya hechoprivate, sería un poco loco no elegirpubliccomo su contraparteexportpara modificar la visibilidad en los módulos internos es la mejor alineación con los módulos ES6fuente
export class User { name: string }Otro archivo:import {User} from ""./the_file_path_to_the_user_class;consulte la sección 3.3 de los documentos nativescriptimportpara indicar "este valor no se exporta " sería un uso adecuado de la palabra clave?