【发布时间】:2019-05-09 14:10:18
【问题描述】:
我正在研究可访问性,并认为“我将在我的项目中将 alt 设为必需属性。”如果没有提供 alt 属性,我的目标是让我的反应应用程序中的所有 img 标签抱怨。因此,我创建了一个 .d.ts 文件,其中添加了以下内容:
import { HTMLAttributes } from 'react';
declare module 'react' {
export interface ImgHTMLAttributes<T> extends HTMLAttributes<T> {
alt: string;
}
}
我收到以下错误:
'alt' 的所有声明必须具有相同的修饰符。
后续的属性声明必须具有相同的类型。属性 'alt' 必须是 'string | undefined',但这里有类型'string'。
有没有办法表明我正在尝试覆盖,而不是扩展?还是有更好的方法来解决这个问题?
【问题讨论】:
-
因为这对于
<img>来说不是自然行为,您可能需要一个自定义的Img包装器组件来强制执行您需要的道具。另见stackoverflow.com/questions/44675647/…。我可能会忘记一些事情,但似乎没有什么好办法。
标签: reactjs typescript