React Typescript-添加自定义属性

Yan*_*etz 1 custom-attributes typescript reactjs

React Typescript允许添加自定义data- *属性。但是是否可以添加自定义属性,例如'name'|| “测试”行为。?

<span name="I'm causing a type error" data-test="I'm Working"/>
Run Code Online (Sandbox Code Playgroud)

我加粗了。

类型错误:类型'{儿童:元素;名称:字符串;数据测试:字符串;}”不能分配给“ DetailedHTMLProps,HTMLSpanElement>”类型。 属性“名称”在类型 “ DetailedHTMLProps,HTMLSpanElement>” 上不存在。TS232

"react": "^16.7.0",
"typescript": "^3.2.4",
Run Code Online (Sandbox Code Playgroud)

Yan*_*etz 34

还有另一种方法......跳过静态检查(打字稿不做动态)

{ 
  const allowedProps = {test: "not-data-attribute"}
  <span {...allowedProps}/>
}
Run Code Online (Sandbox Code Playgroud)


Jur*_*can 5

在反应16+中有可能,请参阅

探针是打字稿不知道的(还)

但您仍然可以添加@ts忽略以进行类型检查

{ //@ts-ignore
  <span name="I'm causing a type error" data-test="I'm Working"/>
}
Run Code Online (Sandbox Code Playgroud)


las*_*ger 5

简单添加自定义属性以 开头data-,在某些情况下您可以从aria-

<div data-attr={3} data-nothing="super">hover</div>
Run Code Online (Sandbox Code Playgroud)

似乎打字稿知道带有这些前缀的自定义属性,请检查此链接