Typescript 如何将实用函数应用于超类型';泛型类型的s参数
我甚至不确定我写的问题是否正确,所以请恕我直言。我想知道我是否对泛型类型的参数化值应用了省略函数 我希望这会给我一个编译器错误,因为不应该支持标记Typescript 如何将实用函数应用于超类型';泛型类型的s参数,typescript,typescript-generics,Typescript,Typescript Generics,我甚至不确定我写的问题是否正确,所以请恕我直言。我想知道我是否对泛型类型的参数化值应用了省略函数 我希望这会给我一个编译器错误,因为不应该支持标记 <ModalBody tag={'bjaisd'}></ModalBody> 然后用一个省略来包装整个联合,但我不知道语法可能是什么,或者它是否可能。此外,我不想影响从BaseShardComponent扩展的任何其他实现。这是一个特殊情况。这在您的用例中有效吗: import React from 'React'; mo
<ModalBody tag={'bjaisd'}></ModalBody>
然后用一个省略来包装整个联合,但我不知道语法可能是什么,或者它是否可能。此外,我不想影响从BaseShardComponent扩展的任何其他实现。这是一个特殊情况。这在您的用例中有效吗:
import React from 'React';
module 'shards-react' {
type Props = {
className?: string,
tag?: string | keyof HTMLElementTagNameMap,
};
class BaseShardsComponent<T> extends React.Component<Props & T> {}
export class ModalBody<T> extends BaseShardsComponent<Omit<Props, 'tag'> & T> {}
}
你能告诉我省略的目的是什么吗?你想在这里实现什么?我试图从jsx元素中删除一个属性,因为它不受支持
{
className?: string,
tag?: string | keyof HTMLElementTagNameMap,
} & T
import React from 'React';
module 'shards-react' {
type Props = {
className?: string,
tag?: string | keyof HTMLElementTagNameMap,
};
class BaseShardsComponent<T> extends React.Component<Props & T> {}
export class ModalBody<T> extends BaseShardsComponent<Omit<Props, 'tag'> & T> {}
}
import React from 'React';
module 'shards-react' {
type ModalBodyProps = {
className?: string,
};
type BaseShardsComponentProps = ModalBodyProps & {
tag?: string | keyof HTMLElementTagNameMap,
}
class BaseShardsComponent<T> extends React.Component<BaseShardsComponentProps & T> {}
export class ModalBody<T> extends BaseShardsComponent<ModalBodyProps & T> {}
}
import React from 'React';
module 'shards-react' {
class BaseShardsComponent<T> extends React.Component<{
className?: string,
tag?: string | keyof HTMLElementTagNameMap,
} & T> { }
type BaseShardsProps = React.ComponentProps<typeof BaseShardsComponent>
export class ModalBody<T> extends BaseShardsComponent<Omit<BaseShardsProps, 'tag'> & T> {}
}