你好!
我在vscode中遇到一个import cv2 as cv
from django.conf import settings
from django.db import models
from imagekit.processors import ResizeToFit
from imagekit.models import ImageSpecField
def video_to_image(source, frame):
vid_cap = cv.VideoCapture(settings.MEDIA_ROOT + source.__str__())
vid_cap.set(cv.CAP_PROP_POS_FRAMES, frame)
success, image = vid_cap.read()
vid_cap.release()
return image
class Post(models.Model):
IMAGE = 'I'
VIDEO = 'V'
FILE_TYPES = [
(IMAGE, 'Image'),
(VIDEO, 'Video')
]
file_type = models.CharField(max_length=1, choices=FILE_TYPES)
file = models.FileField(upload_to='post_images')
thumbnail_frame = models.IntegerField(default=0)
image_thumbnail = ImageSpecField(source='file',
processors=[ResizeToFit(width=200, height=200)],
format='JPEG',
options={'quality': 60})
ts()
的Intellisense问题。
当我输入以下行时:
JavaScript
我收到一个错误,指出在const input = document.querySelector("#input");
const button = document.querySelector("#button");
button.addEventListener("click", () => {
console.log(input.value);
});
元素中找不到属性"value"
。
请建议我!
答案 0 :(得分:1)
document.querySelector()
默认情况下将返回Element
类型,该类型没有value
属性。您需要告诉TypeScript一种您希望查询选择器返回的更特定类型的元素,因为它不能仅从查询字符串中推论得出。
鉴于您希望查询选择器返回HTML输入元素,您可以使用const input = document.querySelector<HTMLInputElement>("#input");
来缩小查询选择器的返回类型。此类型具有value
属性,因此现在您可以使用input.value
。
更具体地说,document.querySelector
是泛型函数,当某些东西(例如函数的返回类型)可以具有多个类型时,将使用泛型。您可以在TypeScript documentation中阅读有关泛型及其语法的更多信息。