Tslint: Penggunaan ekspresi tipe 'any' yang tidak aman.

Dibuat pada 5 Jan 2018  ·  3Komentar  ·  Sumber: palantir/tslint

Laporan Bug

  • __TSLint versi__: 5.8.0
  • __TypeScript versi__: 2.6.2
  • __Menjalankan TSLint melalui__: Node.js API

Kode TypeScript sedang dilinting

const json: {} | null | undefined = JSON.parse(queryData);

Konfigurasi

{
    "defaultSeverity": "error",
    "extends": [
        "tslint:all"
    ],
    "rules": {
    }
}

Perilaku sebenarnya

Penggunaan ekspresi tipe 'any' yang tidak aman.

Perilaku yang diharapkan

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.

Not A Bug

Semua 3 komentar

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!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat