你用了非标准属性,可以利用 TS interface 重复声明会合并的特点自己追加额外属性。至于运行时是否符合类型定义,需要你自己负责。
declare global {
// 低版本的 TS FileList 不是 Iterable 的,自己加一个
interface FileList {
[Symbol.iterator](): Iterator<File>;
}
interface File {
webkitRelativePath: string;
}
}
const onInputChange = (e: Event) => {
const inputEl = e.currentTarget as HTMLInputElement;
const files: string[] = [...inputEl.files!].map(item=>item.webkitRelativePath);
console.log(files)
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…