gpt4 book ai didi

javascript - 当我使用的 TypeScript 定义文件缺少单个定义时,我该怎么办?

转载 作者:搜寻专家 更新时间:2023-10-30 21:12:41 26 4
gpt4 key购买 nike

我正在使用 React我的项目的类型定义。我注意到它缺少对 array returned by the refs property 中元素的聚焦方法。 - 所以我无法获得 this example上类。基本上,编译器说:property 'focus' does not exist on type 'Component <any, any> | Element' .这是因为 focus 存在于类型 HTMLElement 而不是 Element 上。定义文件应将 refs 的返回类型指定为 | HTMLElement或其他一些包含 focus 方法的扩展接口(interface)(我不确定是哪个,但这不是我的问题的重点)。

我的问题是:我现在应该做什么?我无法继续开发!

我知道我可以 fork 定义文件并自己修补它,但这似乎是我在 TypeScript 中不断遇到的一个问题,我想知道是否有一个不那么麻烦的解决方案,这意味着我可以快速行动。在构建我的应用程序时,我似乎一直不得不走出自己的轨道,经常进行 TypeScript 修补!

最佳答案

快速而肮脏的解决方案是转换为 any选择退出类型检查,即

 onSubmitEditing={(event) => { 
(this.refs.SecondInput as any).focus();
}}

在 DefinitelyTyped 上提交拉取请求将是一个不错的举措....

注意:如果需要,您可以使用“对任何进行双重转换”

 type ProperRef = Component <any, any> | HTMLElement

onSubmitEditing={(event) => {
const secondRef = this.refs.SecondInput as any as ProperRef;
secondRef.focus();
}}

关于javascript - 当我使用的 TypeScript 定义文件缺少单个定义时,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39792141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com