Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何将实用函数应用于超类型';泛型类型的s参数_Typescript_Typescript Generics - Fatal编程技术网

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> {}
}