Ketika mencoba-coba dengan Scriptrip, saya menyadari bahwa kelas saya di dalam modul (digunakan sebagai ruang nama) tidak tersedia untuk kelas lain kecuali saya menulis export
kata kunci sebelumnya, seperti:
module some.namespace.here
{
export class SomeClass{..}
}
Jadi sekarang saya bisa menggunakan kode di atas seperti ini:
var someVar = new some.namespace.here.SomeClass();
Namun saya hanya bertanya-tanya mengapa kata kunci ini digunakan dibandingkan dengan hanya menggunakan public
kata kunci yang digunakan pada tingkat metode untuk menandakan bahwa suatu metode atau properti harus dapat diakses secara eksternal. Jadi mengapa tidak menggunakan mekanisme yang sama ini untuk membuat kelas dan antarmuka dll terlihat secara eksternal?
Ini akan menghasilkan kode seperti:
module some.namespace.here
{
public class SomeClass{..}
}
sumber
Beberapa hal untuk ditambahkan ke jawaban Steve Fenton:
export
sudah berarti dua hal yang berbeda (tergantung pada apakah itu di tingkat atas atau tidak); berarti sepertiga mungkin lebih buruk daripada menambahkanpublic
/private
public
vsexport
sepele. Kami telah mengubah kata kunci di sekitar sekelompok; itu tidak sulit.export
(unexport
??), begituprivate
juga pilihan yang logis. Setelah Anda memilikinyaprivate
, akan agak gila untuk tidak memilihpublic
sebagai mitraexport
untuk mengubah visibilitas dalam modul internal adalah penyelarasan tebakan terbaik dengan modul ES6sumber
export class User { name: string }
lain File lain:import {User} from ""./the_file_path_to_the_user_class;
lihat bagian 3.3 dari dokumen asli di sini docs.nativescript.org/angular/tutorial/ng-chapter-3import
untuk menunjukkan "nilai ini tidak diekspor " menjadi penggunaan kata kunci yang sesuai?