我在我的测试中使用React,material-ui,Flow,Jest进行了快照设置。
为了创建一致的快照,我需要在material-ui组件中定义id,否则它们每次都会自动生成并且不同。
所以我这样做了:
<Card style = { style } id = { id ?
$ {id} -card : null }>
这很好用。现在我正在切换到TypeScript,并拥有@ types / material-ui。打字稿抱怨id prop:
[ts] Property 'id' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Card> ...
我做错了吗?有没有办法压制这个?我知道该组件支持传递id。
答案 0 :(得分:1)
查看source code for that definition,它确实不支持id
属性。
如果您认为这是一个错误,我会向DefinitelyTyped提交拉取请求!
答案 1 :(得分:0)
我最终创建了typings/material-ui/index.d.ts
:
declare namespace __MaterialUI
{
interface SelectFieldProps
{
multiple?: boolean;
selectionRenderer?: (values: any[]) => string;
}
namespace Card
{
interface CardProps
{
id?: string;
}
interface CardHeaderProps
{
id?: string;
}
interface CardTitleProps
{
id?: string;
}
interface CardActionsProps
{
id?: string;
}
interface CardTextProps
{
id?: string;
}
}
}
和tsconfig:
"include": [
"./components/**/*",
"./typings/**/*"
],
这解决了我的问题