Saya mulai menggunakan TypeScript dalam proyek Node yang saya kerjakan dalam Visual Studio Code. Saya ingin mengikuti strategi "ikut serta", mirip dengan Flow. Oleh karena itu saya meletakkan // @ts-check
di bagian atas .js
file saya dengan harapan dapat mengaktifkan TS untuk file itu. Pada akhirnya saya menginginkan pengalaman yang sama tentang "linting" seperti Flow, oleh karena itu saya menginstal plugin TSLint sehingga saya dapat melihat peringatan / kesalahan Intellisense.
Tetapi dengan file saya terlihat seperti:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
dan tsconfig.json
file saya terlihat seperti ...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
Saya mendapatkan kesalahan ini: [js] 'types' can only be used in a .ts file.
seperti yang ditunjukkan di bawah ini pada gambar.
Saya melihat pertanyaan ini yang merekomendasikan menonaktifkan validasi javascript di vscode tetapi kemudian itu tidak menunjukkan kepada saya setiap Info naskah Intellisense.
Saya mencoba mengatur tslint.jsEnable
ketrue
dalam pengaturan vscode saya seperti yang disebutkan dalam dokumen ekstensi TSLint tetapi tidak berhasil di sana.
Apa pengaturan yang benar untuk menggunakan .js
file dengan TypeScript dan mendapatkan Intellisense jadi saya tahu apa kesalahan dalam kode saya sebelum saya menjalankan perintah TS?
.ts
menunjukkan kesalahan / peringatan TS seperti yang diharapkan. Saya kira ini bisa berhasil, tetapi saya berharap lebih banyak metode keikutsertaan yang digunakan@ts-check
sambil menyimpan semua ekstensi saya sebagai.js
Jawaban:
Saya menggunakan @flow dengan vscode tetapi memiliki masalah yang sama.
sumber
"javascript.validate.enable": false
Gunakan
"javascript.validate.enable": false
dalam pengaturan VS Code Anda, Ini tidak menonaktifkan ESLINT. Saya menggunakan ESLINT & Flow. Cukup ikuti instruksi Pengaturan Flow For Vs CodeMenambahkan baris ini di settings.json. Membantu
"javascript.validate.enable": false
sumber
Include Languages Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language. E.g.: {"vue-html": "html", "javascript": "javascriptreact"}
klik Edit di settings.json dan menambahkan ini:"javascript.validate.enable": false
.Anda harus menggunakan
.ts
file - misalnyatest.ts
untuk mendapatkanvalidasiKetikan, intellisensetyping
vars, jenis kembalian, serta pemeriksaan kesalahan "yang diketik" (misalnya meneruskan astring
ke metode yang mengharapkannumber
parameter akan error).Ini akan ditransformasikan ke dalam (standar)
.js
melaluitsc
.Pembaruan (11/2018):
Klarifikasi diperlukan berdasarkan suara negatif, komentar yang sangat membantu dan jawaban lain.
types
Ya, Anda dapat melakukan
type
pengecekan di VS Code di.js
file dengan@ts-check
- seperti yang ditunjukkan dalam animasiApa yang awalnya saya maksud untuk Typecript
types
adalah sesuatu seperti ini.ts
yang tidak persis sama:hello-world.ts
Ini tidak akan dikompilasi.
Error: Type "1" is not assignable to String
jika Anda mencoba sintaks ini dalam file Javascript
hello-world.js
:Pesan kesalahan yang direferensikan oleh OP ditampilkan:
[js] 'types' can only be used in a .ts file
Jika ada sesuatu yang saya lewatkan yang mencakup ini serta konteks OP, silakan tambahkan. Mari kita semua belajar.
sumber
.ts
. IINM, sampel menunjukkan pengecekan kesalahan dan kecerdasan . Masalah yang Anda miliki adalah (statis)type
ing variabel Anda, dan kembalitypes
juga - misalnyafoo:string
,bar:number
,fubar:MyClass
,myMethod(f:Array):void
,anotherMethod():string
. Hth ...@ts-check
atribut. Sangat menyesatkan ...Bagi siapa pun yang mendarat di sini dan semua solusi lain tidak berhasil, cobalah ini. Saya menggunakan skrip + bereaksi dan masalah saya adalah bahwa saya mengaitkan file di vscode karena
javascriptreact
tidaktypescriptreact
jadi periksa pengaturan Anda untuk entri berikut.sumber