小编Fab*_*ice的帖子

打字稿键盘事件:“事件”类型的参数不能分配给“键盘事件”类型的参数

即使代码运行完美,我也会遇到以下错误:

"TS2345: Argument of type 'Event' is not assignable to parameter of type 'KeyboardEvent'.
  Property 'altKey' is missing in type 'Event'." 

// In a Class

public listenTo = (window: Window) => {
  ['keydown', 'keyup'].forEach(eventName => {
     window.addEventListener(eventName, e => {
       this.handleEvent(e); // <- error here
     });
   });
}

public handleEvent = (event: KeyboardEvent) => {
    const { key } = event;
    //...
}
Run Code Online (Sandbox Code Playgroud)

我试图将事件类型定义为KeyboardEvent,但是出现以下错误:

 window.addEventListener(eventName, (e:KeyboardEvent) => {
           this.handleEvent(e); // <- error here
         });


 TS2345: Argument of type '(event: KeyboardEvent) …
Run Code Online (Sandbox Code Playgroud)

javascript casting type-conversion typescript

7
推荐指数
2
解决办法
6084
查看次数

Typescript将空函数反映为defaultProps

我有一个无状态功能组件,带有一个可选的函数参数作为属性(onClick),我试图将一个空函数定义为默认属性,以便能够在我的组件中安全地执行:

 <span onClick={props.onClick} />
Run Code Online (Sandbox Code Playgroud)

但我有以下错误:"表达预期."

interface IProps {
  size?: sizeType;
  onClick?: (e:any) => void;
}
const Foo: React.SFC = (props: IProps) => {
  // ...
};
const defaultProps: IProps = {
   size: 'default',
   onClick: () => void <-- Expression expected.
};
Foo = defaultProps;
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

typescript reactjs typescript-typings typescript2.0

5
推荐指数
3
解决办法
8637
查看次数