2017-06-16 28 views
2

我正在使用Typescript和Preact。我想創建一個暴露所有一個<span/>可以有道具的組件:如何創建具有HTMLAttributes作爲道具的組件

import { h, Component } from "preact"; 

export class MySpan extends Component<any, void> { 
    render(props) { 
     return <span {...props}></span>; 

    } 
} 

然而,上述的例子中any,這是不是真的類型安全。相反,我想公開的屬性span了。

回答

1

在反應我會做這種方式:

export class MySpan extends React.Component<React.HTMLProps<HTMLDivElement>, void> 
{ 
    public render() 
    { 
     return <span {...this.props}/>; 
    } 
} 

我沒有真正體驗preact但考慮到他們的preact.d.ts,它應該是類似於:

import { h, Component } from "preact"; 

export class MySpan extends Component<JSX.HTMLAttributes, void> { 
    render(props) { 
     return <span {...props}></span>; 

    } 
} 

注這不是span元素的特定屬性,而是通用屬性。

+0

看起來不錯,你怎麼能得到那裏的「孩子」? – user3612643

+0

你可以試試這個:Component Amid