const json: {} | null | undefined = JSON.parse(queryData);
{
"defaultSeverity": "error",
"extends": [
"tslint:all"
],
"rules": {
}
}
Penggunaan ekspresi tipe 'any' yang tidak aman.
Saya dapat melakukan const json: any = JSON.parse(queryData);
tetapi saya ingin mematuhi aturan tidak-ada
Bagaimana saya bisa mendapatkan pengembalian JSON.parse tanpa menggunakan ekspresi tipe 'any' yang tidak aman.
Saya benar-benar tidak yakin apa yang Anda harapkan di sini... Anda ingin menggunakan any
, tetapi ingin mempertahankan aturan no-any
? Itu benar-benar bertentangan satu sama lain. Apa yang mencegah Anda dari hanya mendeklarasikan jenis yang cocok untuk data kueri Anda dan kemudian melakukan const json: YourType = JSON.parse(queryData);
?
Terima kasih atas balasannya. saya tidak jelas
Tujuan saya adalah untuk menjaga aturan no-any dan saya mencari cara untuk mendapatkan hasil JSON.parse(queryData) tanpa peringatan.
Untuk sekarang saya melakukan json: any = JSON.parse(queryData); => tetapi saya harus menonaktifkan no-any.
Jika saya melakukan solusi Anda: const json: YourType = JSON.parse(queryData);
Saya kemudian harus menonaktifkan aturan no-unsafe-any.
Inilah mengapa dalam pendekatan pertama saya, saya mencoba : const json: {} | nol | tidak terdefinisi = JSON.parse(queryData); Melihat pada dokumen https://palantir.github.io/tslint/rules/no-unsafe-any/ => saya tidak akan memiliki no-unsafe-any dan tidak ada peringatan.
Tetapi JSON.parse juga dapat mengembalikan tipe lain seperti string sehingga solusi ini bukan satu-satunya.
Saya sebenarnya tidak yakin apakah ada solusi tetapi sebelumnya saya ingin bertanya kepada kalian spesialis.
@ohrrkan kasus penggunaan Anda bagus - biasanya yang dilakukan orang adalah JSON.parse(queryData) as MyType
. Menutup ini sebagai tidak dapat ditindaklanjuti untuk saat ini, karena belum ada banyak permintaan untuk tindakan apa pun dari pihak TSLint. Semoga membantu!