Giải pháp nhanh và bẩn là sử dụng một cách rõ ràng any
(y as any).x
"Ưu điểm" là, dàn diễn viên rõ ràng, điều này sẽ biên dịch ngay cả với bộ noImplicitAnycờ.
Giải pháp thích hợp là cập nhật tệp định nghĩa đánh máy.
Xin lưu ý rằng, khi bạn chuyển một biến sang any, bạn chọn không tham gia kiểm tra biến đó.
Vì tôi đang ở chế độ từ chối trách nhiệm, việc truyền hai lần thông qua anykết hợp với giao diện mới, có thể hữu ích trong các tình huống khi bạn
- không muốn cập nhật một tập tin đánh máy bị hỏng
- đang vá khỉ
Tuy nhiên, bạn vẫn muốn một số hình thức gõ.
Giả sử bạn muốn vá định nghĩa của thể hiện ycủa loại OrginalDefvới xthuộc tính mới của loại number:
const y: OriginalDef = ...
interface DefWithNewProperties extends OriginalDef {
x: number
}
const patched = y as any as DefWithNewProperties
patched.x = .... //will compile
HTMLElementvà có thuộc tính bổ sunggetBBox. Bằng cách đó bạn vẫn nhận được mã hoàn thành trên các thuộc tính khác.