导入FastClick

时间:2015-11-25 04:55:28

标签: typescript definitelytyped fastclick.js

我正在FastClick使用FastClick.d.ts。 TSC使用module: "commonjs"并且我正在捆绑Webpack。我无法弄清楚如何引用FastClick。

如何将FastClick导入TypeScript?如果我这样做:

import {FastClick} from 'fastclick'
FastClick.attach(document.body);

我没有得到TSC编译错误,但是转换后的代码如下所示:

var fastclick_1 = require('fastclick');
fastclick_1.FastClick.attach(document.body)

哪个不起作用。 fastclick_1似乎是FastClick函数本身。

如果我这样做:

import * as FastClick from 'fastclick'
FastClick.attach(document.body)

我收到编译错误Error:(6, 49) TS2339: Property 'attach' does not exist on type 'typeof fastclick',但发出的JS有效:

var FastClick = require('fastclick');
FastClick.attach(document.body);

那么我怎样才能让TSC和发出的JS都工作? FastClick.d.ts错了吗?我导入模块错了吗?

2 个答案:

答案 0 :(得分:3)

@basarat永远不会合并他的拉请求。通过括号表示法调用import * as FastClick from 'fastclick'; FastClick['attach'](document.body); 将阻止TSC错误并发出正确的JS。

.attr()

这不太理想,但它确实有效。

答案 1 :(得分:1)

  

FastClick.d.ts是否错误

是。绝对Typed是最好的努力(就像大多数文档工作从源代码断开),在这种情况下是错误的。