网站搜索

riot.js - Typescript 找不到模块 'wnumb'


/// <amd-module name="AdvancedSlider"/>
import * as $ from "jquery";
import * as Wnumb from "wnumb"; 
//also tried import {wNumb} from "wnumb"
//and tried import {wNumb} from "wNumb"

export class AdvancedSlider extends Riot.Element { ...blah ... }

这会导致 Error TS2307: 找不到模块 'wnumb'。

然而,如果我这样做:

/// <amd-module name="AdvancedSlider"/>
import * as $ from "jquery";
import "wnumb";
export class AdvancedSlider extends Riot.Element { ...blah ... }

它可以编译。

使用来自 https://github.com/retyped/wnumb-tsd-ambient/blob/master/wnumb.d.ts 的类型定义,我需要做前者,因为我需要在 AdvancedSlider 类中获取它的引用。

我哪里做错了?

2016年8月2日编辑

无法让它工作。

已使用:

const wNumb = require("wnumb");

在我看来这似乎是个失败。继续前进...

答案#1

即使已经很晚了,我还是遇到了和你一样的问题 :(

然而,我使用的是 webpack 2.x,无论如何,这可能对下一个来的人有帮助,但我通过使用 webpack ProvidePlugin 成功实现了:

new webpack.ProvidePlugin({
       $: "jquery",
       jQuery: "jquery",
       wNumb: "wnumb"
   })

也可以从 https://github.com/DefinitelyTyped/DefinitelyTyped 获取类型定义

希望它对其他人也有用。