使用Typescript,在.tsx文件中,
之后import injectTapEventPlugin = require('react-tap-event-plugin')
injectTapEventPlugin()
使用这个JSX:
<div onTouchTap={ this.showFront }>
我收到语法错误:
error TS2339: Property 'onTouchTap' does not exist on type 'HTMLProps<HTMLDivElement>'.
尽管有
interface HTMLDivElement {
onTouchTap: Function,
}
在同一个代码文件中,它应该将onTouchTap合并到lib.d.ts中div使用的HTMLDivElement接口
intellisense看到onTouchStart
等,但不是onTouchTap
。
有什么不对,或者我做错了什么?
谢谢,
答案 0 :(得分:2)
在同一个代码文件中,它应该将onTouchTap合并到lib.d.ts中div使用的HTMLDivElement接口
没有。因为您的文件是模块,因为您具有根级import
(import injectTapEventPlugin
)。这意味着它与全局命名空间断开连接
您要扩展的接口也不是HTMLDivElement,而是react.d.ts
中定义的DOM属性。
您需要创建一个vendor.d.ts
并将其放入:
declare module __React{
interface DOMAttributes {
onTouchTap?: Function,
}
}
更多:https://basarat.gitbooks.io/typescript/content/docs/project/modules.html