如何从寓言中的NPM模块导入功能?

Mar*_*son 3 f# fable-f#

我正在尝试在Fable项目中使用NPM包规范化轮.

我已确认该软件包已下载到该node-modules文件夹中.

根据文档本文,我使用以下F#代码:

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.

我猜导入不起作用,但我做错了什么?

Ant*_*nen 6

我们来看看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)