Quasar q 文件元素的正确 TypeScript 类型是什么?
What is the correct TypeScript type for a Quasar q-file element?
我有一个带有模板引用的 q-file
,它看起来像这样:
<q-file
ref="myFile"
v-model="image"
@update:model-value="imageUpdate"
/>
这是参考(我最好的猜测是给它一个类型):
const myFile: Ref<HTMLInputElement | undefined> = ref(undefined);
但是当我使用它时,我得到一个 TypeScript 错误:
myFile.value.pickFiles();
这是错误:
Property 'pickFiles' does not exist on type 'HTMLInputElement'.ts(2339)
所以我假设 HTMLInputElement
是错误的类型。
q-file
的正确类型是什么?
如果没有类型,我该如何创建一个?
我不确定这是否正确,但我尝试按照以下方式扩展 HTMLInputElement 类型。
interface QFile extends HTMLInputElement {
pickFiles: () => void;
}
const myFile: Ref<QFile | undefined> = ref(undefined);
if (myFile.value) {
myFile.value.pickFiles();
}
错误已经消失,但我不确定这是否 100% 正确。
q-file Quasar docs 中 pickFiles 方法的形状有这个 pickFiles ([evt]) => void 0
。
我认为这表明它需要一个事件?或者可能是一个事件数组?
无论哪种方式,我都无法正常工作,所以我只是从类型中删除了参数。如果您知道正确的做法,请插话。
每个 Quasar 组件都有自己的实例类型,您可以从 'quasar'
导入它们。这是 QFile
:
的示例
import { ref, Ref } from 'vue';
import { QFile } from 'quasar';
const fileRef: Ref<QFile | undefined> = ref();
function pickFiles () {
if (myFile.value) {
myFile.value.pickFiles();
}
}
专业提示:您可以将其与类型断言结合使用,使交互变得更简单。当您想进行解构时,它尤其有用。这种简单性带来了很小的成本,即了解定义 ref 值的上下文,否则,您可能会遇到运行时错误。
import { ref, Ref } from 'vue';
import { QFile } from 'quasar';
const fileRef = ref() as Ref<QFile>;
function pickFiles () {
fileRef.value.pickFiles();
}
我有一个带有模板引用的 q-file
,它看起来像这样:
<q-file
ref="myFile"
v-model="image"
@update:model-value="imageUpdate"
/>
这是参考(我最好的猜测是给它一个类型):
const myFile: Ref<HTMLInputElement | undefined> = ref(undefined);
但是当我使用它时,我得到一个 TypeScript 错误:
myFile.value.pickFiles();
这是错误:
Property 'pickFiles' does not exist on type 'HTMLInputElement'.ts(2339)
所以我假设 HTMLInputElement
是错误的类型。
q-file
的正确类型是什么?
如果没有类型,我该如何创建一个?
我不确定这是否正确,但我尝试按照以下方式扩展 HTMLInputElement 类型。
interface QFile extends HTMLInputElement {
pickFiles: () => void;
}
const myFile: Ref<QFile | undefined> = ref(undefined);
if (myFile.value) {
myFile.value.pickFiles();
}
错误已经消失,但我不确定这是否 100% 正确。
q-file Quasar docs 中 pickFiles 方法的形状有这个 pickFiles ([evt]) => void 0
。
我认为这表明它需要一个事件?或者可能是一个事件数组?
无论哪种方式,我都无法正常工作,所以我只是从类型中删除了参数。如果您知道正确的做法,请插话。
每个 Quasar 组件都有自己的实例类型,您可以从 'quasar'
导入它们。这是 QFile
:
import { ref, Ref } from 'vue';
import { QFile } from 'quasar';
const fileRef: Ref<QFile | undefined> = ref();
function pickFiles () {
if (myFile.value) {
myFile.value.pickFiles();
}
}
专业提示:您可以将其与类型断言结合使用,使交互变得更简单。当您想进行解构时,它尤其有用。这种简单性带来了很小的成本,即了解定义 ref 值的上下文,否则,您可能会遇到运行时错误。
import { ref, Ref } from 'vue';
import { QFile } from 'quasar';
const fileRef = ref() as Ref<QFile>;
function pickFiles () {
fileRef.value.pickFiles();
}