sách gpt4 ai đã đi

Phần tử ngầm có kiểu 'bất kỳ' vì biểu thức chỉ mục không phải là kiểu 'số' [7015]

In lại Tác giả: Data Little Sun Thời gian cập nhật: 2023-10-29 04:41:30 72 4
mua khóa gpt4 Nike

Tôi đã lấy mã từ css animation callbacks của David Walsh và điều chỉnh nó cho phù hợp với TypeScript. Tuy nhiên, tôi gặp lỗi và không biết tại sao:

giao diện IBrowserPrefix {
[key: chuỗi]: chuỗi;
}

// http://davidwalsh.name/css-animation-callback
hàm whichAnimationEvent() {
hãy để x: keyof IBrowserPrefix;
const el = document.createElement('temp');
const browserPrefix: IBrowserPrefix = {
hoạt hình: 'animationend',
OAnimation: 'oAnimationEnd',
MozAnimation: 'animationend',
WebkitAnimation: 'webkitAnimationEnd',
};

cho (x trong browserPrefix) {
nếu (el.style[x] !== không xác định) {
// ^---- [Lỗi TS]: Phần tử có kiểu 'bất kỳ' b/c biểu thức chỉ mục không phải là kiểu 'số'
trả về browserPrefix[x];
}
}
}

1 Câu trả lời

Điều này xảy ra vì bạn đang cố gắng lập chỉ mục cho một đối tượng bằng chữ ký chỉ mục số với khóa chuỗi.

cho x trong trình duyệtPrefix Một mảng các khóa sẽ được trả về dưới dạng chuỗi. Nhưng vì một lý do nào đó,Khai báo CSSStyle Đặt loại chỉ mục của nó thành con số(còn hơn là sợi dây)- Nhìn thấy https://github.com/Microsoft/TypeScript/issues/17827 .

Bạn đang nhận được lỗi này vì bạn đã bật --noImplicitBất kỳ. Một cách để thực hiện (một cách khó hiểu) là chuyển đổi chỉ mục thành chuỗi:

  cho (x trong browserPrefix) {
nếu (el.style[x như bất kỳ] !== không xác định) {
trả về browserPrefix[x];
}
}

Một cách khác là sửa đổi loại (thử gửi vấn đề lên github).

Trong khi chúng tôi ở đây, bạn nên hằng số đánh dấu x Và nếu bạn định sử dụng for-in trên một đối tượng, bạn nên đảm bảo rằng thuộc tính đó thuộc về đối tượng đó để tránh kéo theo bất kỳ thứ gì được kế thừa trong chuỗi nguyên mẫu:

  đối với (const x trong browserPrefix) {
nếu (browserPrefix.hasOwnProperty(x) && el.style[x như bất kỳ] !== không xác định) {
trả về browserPrefix[x];
}
}

Ngoài ra, sử dụng cho-củaĐối tượng.khóa Còn hơn là cho vào.

Không cần phải định nghĩa trướcx.

Liên quan đến javascript - Element ngầm có kiểu 'bất kỳ' vì biểu thức chỉ mục không phải là kiểu 'số' [7015], chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/53526178/

72 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com