Solusi cepat dan kotor adalah dengan secara eksplisit dilemparkan ke any
(y as any).x
"Keuntungan" adalah bahwa, pemerannya eksplisit, ini akan dikompilasi bahkan dengan noImplicitAny
set bendera.
Solusi yang tepat adalah memperbarui file definisi pengetikan.
Harap dicatat bahwa, ketika Anda melemparkan variabel ke any
, Anda memilih keluar dari jenis memeriksa variabel itu.
Karena saya dalam mode disclaimer, casting ganda melalui any
dikombinasikan dengan antarmuka baru, dapat berguna dalam situasi di mana Anda
- tidak ingin memperbarui file pengetikan yang rusak
- sedang menambal monyet
namun, Anda masih menginginkan beberapa bentuk pengetikan.
Katakanlah Anda ingin menambal definisi instance y
dari tipe OrginalDef
dengan properti x
tipe baru number
:
const y: OriginalDef = ...
interface DefWithNewProperties extends OriginalDef {
x: number
}
const patched = y as any as DefWithNewProperties
patched.x = .... //will compile
HTMLElement
dan memilikigetBBox
properti tambahan . Dengan begitu Anda masih mendapatkan penyelesaian kode pada properti lainnya.