Typescript: Kesalahan "Tidak dapat mengkompilasi ruang nama" dengan --isolatedModules dan tidak ada ruang nama

Dibuat pada 17 Apr 2017  ·  52Komentar  ·  Sumber: microsoft/TypeScript

Versi TypeScript: nightly (2.3.0-dev.20170417)

Kode

function f() {}

Perilaku yang diharapkan:

Tidak ada kesalahan, atau pesan kesalahan tentang file non-modul dalam proyek --isolatedModules .

Perilaku sebenarnya:

src/a.ts(1,1): error TS1208: Cannot compile namespaces when the '--isolatedModules' flag is provided.

Hal ini terjadi karena kita di program.ts verifyCompilerOptions untuk mencari file sumber yang bukan deklarasi modul eksternal, dan gagal pada yang pertama, apapun itu.
Pesan kesalahan harus ditingkatkan untuk mencerminkan alasan sebenarnya kami mengeluarkan kesalahan ini, dan tidak menyebutkan ruang nama.
Bergantian, kami hanya dapat mengizinkan file tanpa impor dan benar-benar mencari namespace sebelum menambahkan kesalahan ini.

Bug Error Messages help wanted

Komentar yang paling membantu

A global file cannot be compiled using '--isolatedModules'. Ensure your file contains imports, exports, or an 'export {}' statement.

Semua 52 komentar

Pesan kesalahan harus lebih jelas. alih-alih namespaces itu bisa mengatakan non-module . Rekomendasi @DanielRosenwasser ?

Seharusnya tidak ada pesan kesalahan dalam situasi ini. Opsi --isolatedModules seharusnya mematikan sistem modul internal sepenuhnya, jika tsc masih error dengan cara ini maka opsi tersebut tidak melakukan tugasnya.

Di # 15839 saya bermaksud untuk mengubah perilaku pemeriksaan tetapi kemudian menyadari bahwa pemeriksaan ini tidak ada gunanya dan solusi yang ideal adalah dengan menghapusnya.
Ketikan selalu mengizinkan penggunaan namespace di dalam modul eksternal dengan --isolatedModules pada:

export function something() {} // export found, so this module is considered 'external'
namespace ns {} // namespace is still valid in an external module

Dengan demikian, pemeriksaan tersebut tidak melakukan apa pun dalam kasus (yang tampaknya tidak valid) itu, ketika seharusnya mengajukan keluhan. Jadi mengapa mengeluh ketika programmer bahkan tidak menggunakan namespace apa pun, tidak melakukan kesalahan?

@wilonth Alasan untuk masalah ini adalah karena pesan kesalahannya salah: ruang nama baik-baik saja jika merupakan bagian dari modul (es6), tetapi file non-modul apa pun seharusnya merupakan kesalahan.

@ andy-ms Saya mencoba untuk menunjukkan bahwa seluruh kode untuk memeriksa kesalahan ini tidak ada gunanya, dan kita harus menghapusnya daripada memperumit kode.
Maksud saya adalah, ketika --isolatedModules aktif, setiap file harus dianggap sebagai modul eksternal (ES6), titik. Dalam hal ini, penggunaan Namespaces seharusnya legal karena saat ini, menggunakan Namespaces di dalam modul ES6 sangat legal (dengan --isolatedModules aktif).

Maksud saya adalah, ketika --isolatedModules aktif, setiap file harus dianggap sebagai modul eksternal (ES6), titik.

Semantik di sini adalah bahwa modul adalah file dengan setidaknya satu impor atau ekspor tingkat atas. tidak peduli bagaimana Anda memanggil kompilator.

@mhegazy Ya dan aturan itu adalah akar masalah yang kita miliki di sini. Aturan tidak adil memperlakukan file tanpa impor atau ekspor sebagai bagian dari sistem modul internal lama, jadi --isolatedModules menolak file.
Sekarang kita tidak boleh mengubah aturan karena itu mungkin akan merusak banyak hal, tetapi kita dapat menyelesaikan masalah saat ini dengan sangat mudah hanya dengan menghapus pesan kesalahan ini.
Bayangkan pesan kesalahan "tidak dapat mengkompilasi ruang nama" ini dihapus, apa yang salah? Bagaimana dengan basis kode yang menggunakan modul internal, seperti compiler Typecript itu sendiri? Dengan --isolatedModules aktif, apakah itu akan mengkompilasi kode sampah dan membingungkan pengguna? Tidak, akan ada banyak pesan kesalahan Ketikan tentang simbol yang tidak ditentukan, karena --isolatedModules memutus tautan di antara file, cukup jelas untuk dipahami.
Dapatkah Anda menemukan kerugian APA PUN dengan menghapus pesan kesalahan ini? Aku tidak bisa. Mengapa kita tidak memilih solusi termudah, yang melibatkan nol pekerjaan (hapus saja garis) dan tidak memiliki kerugian?

Dengan --isolatedModules aktif, apakah itu akan mengkompilasi ke kode sampah dan membingungkan pengguna? Tidak, tidak akan

Ya, tentu saja.

Tujuan dari flag --isolatedModules adalah untuk memvalidasi bahwa program dapat berhasil dikompilasi melalui transpilasi file tunggal.

Basis kode TypeScript tidak dapat berhasil dikompilasi melalui transpilasi file tunggal. Ada kode seperti ini di mana-mana:

file1

namespace ts {
  export var x = 10;
}

file2

namespace ts {
  var y = x; // transpiles to ts.x during whole-program compilation
}

Jika kita file tunggal ditranspilasi file2, itu akan rusak.

Saya buruk, saya mengacaukan pengujian saya. Saya dengan ini mencabut proposal saya. Terima kasih @RyanCavanaugh karena sudah mengingatkan.

Jadi solusinya adalah: mendeteksi penggunaan namespace nyata sebelum membuang pesan kesalahan ini (yaitu solusi "alternatif" yang diusulkan @ andy-ms). Kami tidak bisa begitu saja mengubah teks menjadi sesuatu yang lain karena pesan kesalahan dalam kasus ini benar-benar salah.
Saya ingin membuat PR, tetapi apakah saya masih dapat dipercaya di sini setelah memuntahkan semua omong kosong itu?

A global file cannot be compiled using '--isolatedModules'. Ensure your file contains imports, exports, or an 'export {}' statement.

Jika kita file tunggal ditranspilasi file2, itu akan rusak.

Maaf untuk necromancy, tapi tentunya ini harus, ketika menargetkan modul, gagal dengan sesuatu seperti 'x' is not defined ? Kasus itu bagi saya tidak berbeda dengan yang sepele:

file1

var x = 10;

file2

var y = x;

Yang juga berfungsi saat menggabungkan / dievaluasi secara global dan tidak dengan modul; tidak ada hubungannya dengan namespaces .

Pada dasarnya, mengapa skrip ketikan repot menebak bahwa file tanpa import atau export bukanlah modul, padahal seharusnya sudah tahu dari opsi compiler module ? Misalnya Typecript sendiri mengkompilasi tanpa menyetel module , jadi ini menggunakan default none , sehingga kompilator dapat mengasumsikan penggabungan / evaluasi global.

Saat menggunakan --module <something> dan menggunakan deklarasi yang tidak diimpor dari file lain, (termasuk namespace itu sendiri) skrip ketikan sudah gagal dengan "tidak ditentukan" sebelum --isolatedModules , dan sama setelahnya dengan export {} solusi, jadi tampaknya ini bukan pemutusan kompatibilitas untuk menghapus dugaan ini - apakah saya melewatkan sesuatu?

Saya memperhatikan bahwa untuk beberapa alasan Anda masih dapat menggunakan import / export dengan --module none --isolatedModules , yang agak membingungkan, mungkin bug?

@DanielRosenwasser sebagai pengguna akhir: apa artinya "File global"? Saya suka panduannya. Mungkin lebih seperti "File tanpa pernyataan impor atau ekspor bukanlah modul, dan tidak dapat dikompilasi dengan '--isolatedModules'. Tambahkan pernyataan 'export {}' jika file ini hanya dievaluasi untuk efek sampingnya." - meskipun bahasa di sana sepertinya tidak memiliki pesan kesalahan-y.

Saya melihat kesalahan yang sama untuk proyek js sederhana. Saya baru saja membuat contoh proyek js di bawah ini adalah konten paket dan file script. Bagaimana cara mengatasi masalah ini?

Package.json
{
"plnkr": {
"runtime": "system"
}
}

lib / script.js
//
//Selikuran
// oleh Dheeraj Kumar
//

let card1 = "Ace of spades",
card2 = "sepuluh Hati";

console.log ('Selamat Datang di Blackjack!');

console.log ("Anda dibagikan:");
conosle.log ("" + card1);
console.log ("" + card2);

Ada pembaruan tentang ini?

Saya sering menemukan diri saya melakukan ini dalam tes kecil.

describe('jest', () => {
  it('finds this test', () => {
    expect(true).toBeTruthy();
  });

  it('parses this typescript', () => {
    const actual: number = 0;
    const expected: number = 0;
    expect(actual).toEqual(expected);
  });
});

export {
  // Use an empty export to please Babel's single file emit.
  // https://github.com/Microsoft/TypeScript/issues/15230
}

Saya benar-benar menginginkan opsi yang menyebabkan TypeScript mempertimbangkan setiap file .ts sebagai modul ES6, terlepas dari apakah itu berisi pernyataan impor / ekspor atau tidak. Saya awalnya mengasumsikan opsi --isolatedModules adalah opsi itu, tetapi ini menyebabkan kesalahan yang sangat membingungkan pada file impor / ekspor-kurang. (Saya masih tidak mengerti apa arti pesan kesalahan dengan namespace. Saya rasa saya tidak menggunakan fitur itu.) Alasan saya menginginkan pengaturan ini adalah karena saya memiliki beberapa masalah yang tidak tertangkap oleh TypeScript karena saya tidak sengaja mereferensikan variabel tingkat atas dari satu file .ts di file lain (yang keduanya tidak memiliki pernyataan impor / ekspor, jadi TypeScript tidak memperlakukannya sebagai modul ES6) meskipun menggunakan node / parcel / webpack di mana file tidak dapat mereferensikan satu sama lain variabel yang tidak diekspor seperti itu.

Saya berakhir di sini ketika mencoba memperbaiki gangguan yang terkait. Komentar di bawah ini hanya untuk membantu pengguna VS Code lainnya yang mencari tentang kesalahan ini dengan create-react-app dan TypeScript.

Saat mengonfigurasi proxy dengan create-react-app 2.x dan TypeScript, Anda menambahkan file bernama setupProxy.js dengan kode seperti ini:

const proxy = require('http-proxy-middleware');
module.exports = function(app) { /* ... */ };

react-scripts membaca file ini di luar proses transpilasi ts, jadi itu harus js.

Ini berfungsi persis seperti yang didokumentasikan , tetapi memiliki efek samping yang mengganggu.

tsconfig.json dihasilkan oleh react-scripts mencakup semua file dalam src , termasuk setupProxy.js . Akibatnya, ini memicu VS Code untuk menampilkan kesalahan Cannot compile namespaces... di setupProxy.js , tandai kode dengan coretan merah dan sertakan di panel Masalah. Dalam pengaturan saya, itu juga menyoroti file dan semua folder leluhurnya dengan warna merah.

Solusi: Tekan pesan kesalahan VS Code dengan mengecualikan file setupProxy.js di tsconfig.json.

{
  // ...
  "exclude": ["src/setupProxy.js"]
}

react-scripts memaksa isolatedModules: true , tetapi tampaknya tidak menimpa exclude .

Alternatif: Tambahkan ekspor bernama ke `setupProxy.js:

export const _ = '';

Dengan ekspor level teratas, sekarang valid dengan --isolatedModules.

Sangat sering developer mendapatkan pesan ini karena ada file yang tidak boleh dimasukkan ke dalam kopliasi (gulp.js dll)

PERHATIAN - Jika Anda menggunakan aplikasi create-react dan Anda melihat masalah ini seperti saya ... Saya dapat melewati ini dengan membuat perubahan pada file tsconfig.json saya ....

Mengubah berikut ini

    "isolatedModules": true,

untuk

    "isolatedModules": false,

@UncleFifi Dan kemudian kesalahan berpindah dari pemeriksaan tipe ke transformasi skrip babel, lihat peringatan pertama .

@jtbennett Anda tidak dapat mengekspor apa pun dengan export {}; - bentuk merosot dari export { name, localName as exportName };

@UncleFifi Dan kemudian kesalahan berpindah dari pemeriksaan tipe ke transformasi skrip babel, lihat peringatan pertama .

Hanya jika Anda benar-benar menggunakan ruang nama. Masalah ini terutama tentang kesalahan ini mengeluh tentang ruang nama muncul ketika Anda bahkan tidak menggunakan ruang nama dan kebetulan memiliki file legal dengan impor / ekspor.

Hanya jika Anda benar-benar menggunakan ruang nama. Masalah ini terutama tentang kesalahan ini mengeluh tentang ruang nama muncul ketika Anda bahkan tidak menggunakan ruang nama dan kebetulan memiliki file legal dengan impor / ekspor.

Benar, maaf - sudah lama sejak saya membaca utas ini! Meskipun demikian, alasan mereka menyetel --isolatedModules di CRA adalah karena ia sangat mirip dengan batasan skrip tipe babel (karena babel juga merupakan transpilasi file tunggal), jadi Anda setidaknya harus menyadari bahwa Anda menghapus pelindung itu- rel.

Jadi, apakah solusi saat ini untuk kesalahan Cannot compile namespaces when --isolatedModules flag is provided untuk menambahkan export {}; di bagian atas file?

Ya, itu akan mengatasi masalah tersebut. (Dengan asumsi Anda tidak benar-benar menggunakan TypeScript namespace . Jika tidak, Anda memiliki masalah yang berbeda dan mungkin sah.)

Baru saja menemukan pesan ini karena sebuah file merupakan file "kosong" (yaitu seluruh file telah diberi komentar). Saya senang TS menangkap ini, tetapi pesan kesalahannya sangat buram (dan warnanya rusak pada Vanilla CentOS 7 Install, tetapi ini mungkin karena server dev webpack, tidak terkait dengan TS secara langsung)

screen shot 2019-02-06 at 14 20 14

_Edit: tidak dapat mereproduksi. Saya benar-benar menatap file yang hanya terdiri dari tiga ekspor tingkat atas dan saya mengalami kesalahan ini, tetapi rupanya, saya melakukan kesalahan di tempat lain._

Kesalahan ini baru saja terjadi pada saya dengan file yang memiliki ekspor tingkat atas.

// Cannot compile namespaces:
export const foo = 'foo';

// Compiles fine
const foo = 'foo';
export { foo };

@ denis-sokolov Pertanyaan yang jelas: apakah Anda juga memiliki hal lain dalam file itu, seperti ruang nama?

Jika benar-benar hanya export const , tebakan kedua saya adalah bahwa skrip ketikan sedang digunakan dalam sesuatu seperti webpack dengan ts-loader, dan hanya melihat konten setelah lintasan sebelumnya (misalnya babel-loader) yang memperluas export dalam beberapa hal, tapi itu agak berlebihan.

Saya tidak dapat mereproduksinya lagi. Maaf, @simonbuchan , untuk alarm palsu.

Tidak tahu mengapa saya mendapatkan kesalahan ini pada file tertentu itu.
File lain berperilaku baik

screen shot 2019-02-18 at 12 49 07
screen shot 2019-02-18 at 12 48 34

Saya berada dalam situasi di mana saya menggunakan CRA TypeScript dan mengimpor paket yang tidak memiliki @types . Saya ingin menambahkan declare module 'package' untuk menyediakan tipe saya sendiri, tetapi saya tidak dapat meletakkan pernyataan ini di file modul mana pun. Jadi saya melanjutkan dan membuat types.ts untuk menempatkan pernyataan declare module sana. Sekarang saya mendapatkan kesalahan ini.

Ketika saya mengganti isolatedModules menjadi false , CRA mengubahnya kembali untuk saya. Itu bukan solusi.

Ketika saya menambahkan export {} ke file types.ts dengan declare module , saya mendapatkan nama modul tidak valid dalam augmentasi. sebagai gantinya. Kesalahan ini dihindari dengan meletakkan deklarasi dalam file non-modul, tetapi CRA melalui ini memaksa pengaturan isolatedModules memaksa setiap file menjadi modul!

Jadi ada jalur melingkar untuk menyelesaikan satu kesalahan hanya untuk mendarat di kesalahan lain dan sebaliknya. Bagaimana ini bisa diselesaikan?

@Bnaya menebak, file yang berfungsi menggunakan pernyataan impor atau ekspor? Hanya gunakan satu dari require()/module.exports dan import/export dalam kode Anda. Jika tidak, periksa apakah semua file Anda dilindungi oleh tsconfig include (periksa dokumen untuk detail lengkapnya

@TomasHubelbauer Deklarasi modul harus dalam format .d.ts untuk alasan ini, antara lain.
Saya hanya memiliki CRA menambahkan kembali pengaturan yang saya hapus, tidak mengubahnya kembali, tetapi mungkin itu lebih mendesak untuk terisolasiModules?

@simonbuchan Saya mencoba .d.ts tetapi itu juga tidak berhasil untuk saya, saya akan melaporkan kembali dengan mengapa tepatnya, tidak yakin apa itu. Dan memang CRA menulis ulang pengaturan itu untuk saya.

@simonbuchan saya sudah mencoba semua hal di atas sebelumnya - tidak berhasil :(

@simonbuchan Hmm oke jadi .d.ts berfungsi, saya dapat mendeklarasikan modul di sana dan mengetiknya. Alasan saya awalnya meninggalkannya adalah karena untuk pengetikan yang ingin saya nyatakan dalam modul itu, saya perlu merujuk pengetikan lain, tetapi memasukkan import dalam file .d.ts menyebabkannya berhenti bekerja. Saya tidak tahu bagaimana menyelesaikan ini, tapi itu adalah kurangnya pengetahuan TypeScript saya yang tidak lagi ada hubungannya dengan kesalahan ini.

Ini kasus repro minimal, menggunakan skrip ketikan @ next (repo lengkap di https://github.com/yang/sandbox-ts-namespaces-error):

src / a.js: (perhatikan, tidak perlu impor / ekspor kata kunci)

module.exports = "hello"; // you could really put anything here, e.g. console.log('hello');

tsconfig.js:

{
  "compilerOptions": {
    "allowJs": true,
    "isolatedModules": true,
    "noEmit": true,
    "strict": true
  },
  "include": ["src"]
}

Kesalahan:

$ ./node_modules/.bin/tsc
src/a.js:1:1 - error TS1208: Cannot compile namespaces when the '--isolatedModules' flag is provided.

1 module.exports = "hello";
  ~~~~~~


Found 1 error.

Saya juga pertama kali menemukan ini melalui create-react-app --typescript , yang menginstruksikan Anda untuk membuat setupProxy.js (atau setupTests.js). CRA juga menetapkan isolatedModules dan allowJs menjadi true. Tampaknya belum menjadi masalah hingga versi skrip yang lebih baru (saya tidak melihat kesalahan tentang setupProxy.js saat menggunakan skrip tipe 3.1.x, hanya setelah memperbarui ke 3.2.x atau 3.3.x).

Solusi untuk menambahkan file .js ke set pengecualian Anda berfungsi saat menjalankan tsc, tetapi - mengganggu - Anda masih melihat kesalahan dari file tersebut di editor dari layanan bahasa TS (mencoba VS Code dan Webstorm). (Ini tampaknya menjadi masalah yang terpisah dan lebih umum dengan layanan bahasa TS tidak menghormati pengecualian - tetapi saya tidak dapat menemukan masalah yang ada untuk itu.) Untuk menutupi kesalahan ini di editor, saya menambahkan file .d.ts untuk file * .js.

Lebih jauh lagi, meminta atau mengimpor file .js juga membuat exclude menjadi tidak efektif, sehingga menyebabkan kesalahan (di luar editor Anda).

Hanya menonaktifkan allowJs (terhadap apa yang disarankan create-react-app) tampaknya berhasil untuk saya.

Saya terus mendapatkan kesalahan ini untuk pekerja web saya.

Saya telah mencoba mengecualikan file atau folder individu dan itu tidak berfungsi untuk saya.

Apakah tidak ada cara untuk mengesampingkan pengaturan isolationModules ini, CRA terus menulis ulang tsconfig.json.

Ada saran lain?

@jamespfarrell Taruh export {}; di suatu tempat di file Anda.

@Macil terima kasih atas saran Anda.

Saya mendapatkan kesalahan ini:

Kesalahan pengimporan yang dilakukan: './workers/HeartBeat.worker.js' tidak berisi ekspor default (diimpor sebagai 'HeartBeatWorker').

Jika saya menambahkan:

export default {};

Saya mendapat:

TypeError Tidak Tertangkap: _workers_HeartBeat_worker_js__WEBPACK_IMPORTED_MODULE_2 __. Default bukan konstruktor

Bukankah ada cara sederhana untuk melewati 'terisolasiModules' ini jika bukan untuk satu file, bahkan untuk semua file?

Kesalahan yang Anda dapatkan sekarang tidak terkait dengan setelan isolationModules. Jika Anda menonaktifkanisolasiModules, Anda masih akan mendapatkan kesalahan tersebut.

Kesalahan pengimporan yang dilakukan: './workers/HeartBeat.worker.js' tidak berisi ekspor default (diimpor sebagai 'HeartBeatWorker').

Dimana kesalahan ini terjadi? Sepertinya Anda mencoba mengimpor ekspor default dari file yang tidak memilikinya, seperti import Foo from './workers/HeartBeat.worker.js'; . Jika Anda tidak ingin mengimpor ekspor default, ubah baris impor Anda menjadi import './workers/HeartBeat.worker.js'; .

Anda benar, itu adalah hal lain @Macil ! Terima kasih!

_Mungkin orang lain akan mengalami masalah yang sama: _ Saya mengalami kesalahan yang sama saat muncul untuk beberapa file yang saya tinggalkan sebagai placeholder tanpa konten di dalamnya tetapi saya telah mengimpornya ke file lain, yaitu. Saya memiliki file styles.js kosong yang diimpor ke file komponen lain.

Tambahkan saja
image

Saya mengalami kesalahan ini untuk definisi modul yang secara tidak sengaja saya sufiks .ts alih-alih .d.ts , jika ada orang lain yang membuat kesalahan khusus itu. Harus me-restart server setelah memperbaiki.

Kesalahan yang sama. Saya menggunakan CRA

Menghadapi masalah ini di CRA. Saya lupa mengekspor apa pun dari file:
Снимок экрана от 2019-04-22 22-24-04

Jadi saya mengalami kesalahan ini karena saya memiliki file .js di folder root proyek saya, di file tsconfig.json saya telah mengonfigurasi ini:

"compilerOptions": {
    ....
  },
  "include": ["src"],

Saya harus mengubahnya untuk ini:

"compilerOptions": {
    ....
  },
  "include": ["src/*"],

Itu memperbaikinya, tetapi saya tidak mengerti mengapa, dapatkah seseorang menjelaskannya kepada saya? Pemahaman saya adalah bahwa menyertakan src akan menghilangkan file root dan folder saudara.

@thitemple Apakah Anda mendapatkan / * potongan itu dari sebuah artikel di suatu tempat? Manual webpack sepertinya menunjukkan bahwa yang pertama adalah yang benar. Saya sedang mendiagnosis masalah serupa dan menemukan postingan Anda.

@ vort3xxx saya tidak. Saya melihat posting ini https://github.com/microsoft/TypeScript/issues/15230#issuecomment -479730947 dari @DaviSpindola dan mencobanya. Itu dia

@ vort3xxx saya tidak. Saya melihat posting ini # 15230 (komentar) dari @DaviSpindola dan mencobanya. Itu dia

Masalah yang sama, solusi yang sama. TS 3.5.2.

@Bayu_joo

@simonbuchan Saya mencoba .d.ts tetapi itu juga tidak berhasil untuk saya, saya akan melaporkan kembali dengan mengapa tepatnya, tidak yakin apa itu. Dan memang CRA menulis ulang pengaturan itu untuk saya.

Menghadapi masalah yang sama persis. Apakah Anda pernah menemukan cara untuk mengatasi ini? Mendefinisikan .ts atau .d.ts file deklarasi di dalam aplikasi create react mengembalikan kesalahan All files must be modules when the '--isolatedModules flag disediakan. Menyetel bendera ke false atau menghapus properti isolatedModules seluruhnya disetel ulang ke true saat mulai membuat aplikasi react.
Menambahkan export {} di bagian bawah file deklarasi menghasilkan kesalahan: Invalid module name in augmentation. Module '...' resolves to an untyped module at '...' .

Seseorang tolong bantu. Bagaimana cara menambahkan file deklarasi kustom ke proyek aplikasi create react?

Cari tahu saja jika ada orang lain yang mengalami masalah yang sama. Cukup tambahkan jenis deklarasi Anda ke file react-app-env.d.ts di folder sumber saat menggunakan aplikasi create react.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

siddjain picture siddjain  ·  3Komentar

Zlatkovsky picture Zlatkovsky  ·  3Komentar

kyasbal-1994 picture kyasbal-1994  ·  3Komentar

Antony-Jones picture Antony-Jones  ·  3Komentar

blendsdk picture blendsdk  ·  3Komentar