Typescript: Deklarasikan variabel sebagai jenis modul eksternal tanpa impor

Dibuat pada 8 Sep 2015  ·  3Komentar  ·  Sumber: microsoft/TypeScript

Hai yang disana,

Apakah mungkin untuk menulis modul eksternal (commonjs) "A", kemudian dalam kode "B" modul lain, mendeklarasikan variabel sebagai jenis modul "A" tanpa menggunakan impor yang akhirnya memerlukan modul "A".

Alasan saya ingin melakukan ini adalah bahwa saya akan meneruskan referensi ke modul "A" ke konstruktor kelas di modul lain "B", karena saya ingin modul "A" menjadi tunggal. Tetapi saya ingin mengetik argumen dalam konstruktor dengan yang ada di modul "A", seolah-olah modul "A" telah diimpor menggunakan import A = require ("A");

Alasan saya menginginkan modul tunggal adalah karena modul ini mungkin berisi instance kelas yang mengelola koneksi database, dll, dan saya tidak benar-benar ingin mereka menginisialisasi ulang setiap kali saya harus mengimpor; Saya ingin bisa menyebarkannya daripada mengandalkan potensi sihir "cache modul-node".

Apakah ada cara untuk melakukan ini? Saya telah memikirkan cara lain untuk mencapai keinginan yang saya inginkan, tetapi ini terasa paling sederhana, jika memungkinkan.

Question

Komentar yang paling membantu

Impor modul dihilangkan jika tidak digunakan dalam posisi nilai. jadi jika impor modul A hanya digunakan dalam posisi tipe, panggilan require tidak akan ditulis.

contohnya:

// B.ts
import s = require("./A");
var x: typeof s;

memancarkan

var x;

apakah ini menjawab pertanyaan Anda?

Semua 3 komentar

Impor modul dihilangkan jika tidak digunakan dalam posisi nilai. jadi jika impor modul A hanya digunakan dalam posisi tipe, panggilan require tidak akan ditulis.

contohnya:

// B.ts
import s = require("./A");
var x: typeof s;

memancarkan

var x;

apakah ini menjawab pertanyaan Anda?

Oh itu bagus! Ini pasti menjawab pertanyaan saya. Saya tidak dapat menemukan ini di dokumentasi, jadi terima kasih banyak atas bantuan Anda. :)

Hai teman-teman,
Saya punya pertanyaan yang sejalan. Saya mencoba solusi di atas tetapi sekarang berhasil untuk saya.
Saya mengimpor kelas dari induk modul webpack impor {A, B} dari "induk";
Saya hanya ingin memanggil konstruktor untuk kelas-kelas ini. Saya mencoba const a = A ({data: 1}); Ini tidak memberikan kesalahan TS pada kompilasi. Tapi itu rusak pada javascript runtime mengatakan, Jenis kesalahan A bukan konstruktor.

Apakah saya perlu membuat tipe kustom dan menambahkannya di devDependancies? Atau apakah ada cara khusus untuk mengekspor modul "induk" saya seperti ekspor default.

Setiap bantuan dihargai.

Bersulang,
Sudeep

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

dlaberge picture dlaberge  ·  3Komentar

rigdern picture rigdern  ·  3Komentar

blendsdk picture blendsdk  ·  3Komentar

seanzer picture seanzer  ·  3Komentar

DanielRosenwasser picture DanielRosenwasser  ·  3Komentar