dre*_*att 7 typescript reactjs
我正在研究可访问性并认为"我只是alt在我的项目中创建一个必需的属性." 我的目标是,img如果alt没有提供属性,我的反应应用中的所有标签都会抱怨.所以,我创建了一个.d.ts文件,其中添加了以下内容:
import { HTMLAttributes } from 'react';
declare module 'react' {
export interface ImgHTMLAttributes<T> extends HTMLAttributes<T> {
alt: string;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到这些错误:
'alt'的所有声明必须具有相同的修饰符.
后续属性声明必须具有相同的类型.属性'alt'必须是'string |类型 undefined',但这里有'string'类型.
有没有办法表明我试图覆盖,而不是扩展?或者有更好的方法来解决这个问题吗?
我想这是不可能的,因为 Typescript 认为你的类型和 node_modules 中的类型没有区别(按层次结构)。
所以我通常会定义自己的类型,一切都很好:
import { ImgHTMLAttributes } from 'react';
export interface IMyImgHTMLAttributes extends ImgHTMLAttributes<any> {
alt: string;
}
Run Code Online (Sandbox Code Playgroud)
PS 但是,我不知道这是否适合您的特殊情况(我对 React 不够熟悉)。
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |