我正在尝试在Fable项目中使用NPM包规范化轮.
我已确认该软件包已下载到该node-modules文件夹中.
type INormalizedWheel =
abstract member pixelX: float
abstract member pixelY: float
abstract member spinX: float
abstract member spinY: float
[<Import("normalizeWheel", "normalize-wheel")>]
let normalizeWheel (we: React.WheelEvent) : INormalizedWheel = jsNative
...
let x = normalizeWheel wheelEvent
Run Code Online (Sandbox Code Playgroud)
但是,每当到达最后一行时,都会"Object(...) is not a function"抛出JS错误消息.在调试器中,类型normalizeWheel显示为undefined.
我猜导入不起作用,但我做错了什么?
我们来看看normalize-wheel/index.js
module.exports = require('./src/normalizeWheel.js');
Run Code Online (Sandbox Code Playgroud)
这告诉我们没有任何名为normalizeWheel的函数(否则它将是module.exports.normalizeWheel = ...).这意味着我们需要导入默认函数.这可以这样做:
[<Import("default", "normalize-wheel")>]
let normalizeWheel (we: React.WheelEvent) : INormalizedWheel = jsNative
// Or
let normalizeWheel (we: React.WheelEvent) : INormalizedWheel = importDefault "normalize-wheel"
Run Code Online (Sandbox Code Playgroud)