我目前的打字稿版本是1.6.2,我们将其编译到ECMA 5.我是新来的TypeScript,所以请理解。这些是进口的库类型。打字稿导出默认功能
终极版 - thunk.d.ts:
declare module "redux-thunk" {
import { Middleware, Dispatch } from 'redux';
export interface Thunk extends Middleware { }
export interface ThunkInterface {
<T>(dispatch: Dispatch, getState?:() => T): any;
}
var thunk: Thunk;
export default thunk;
}
在app.ts:
import thunk from "redux-thunk";
console.log(thunk);
我越来越不确定。这是取自以下代码: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/redux-thunk/redux-thunk-tests.ts(7和16行)
我对所有使用默认导入打印机的库都有同样的问题。
编辑:我使用NPM为我做的工作 @Steve芬顿。我刚刚注意到问题出在了Typescript编译器上。当我创建出口默认功能打字稿文件我得到例如:
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
nextQuestion: nextQuestion,
};
通知exports.default
当我看着redux-thunk.js
文件从NPM下载有:
exports.__esModule = true;
exports['default'] = thunkMiddleware;
function thunkMiddleware(_ref) {
var dispatch = _ref.dispatch;
var getState = _ref.getState;
return function (next) {
return function (action) {
return typeof action === 'function' ? action(dispatch, getState) : next(action);
};
};
}
module.exports = exports['default'];
注意module.exports = exports['default'];
如果我把粗体类型转换成Babel编译器,我会得到的结果风格。
最重要的部分是,当我将export['default']
样式替换为exports.default
样式时redux-thunk.js
然后一切正常。这是我的编译器的问题吗?
随着ES5可以使用去 模块'进口咚=需要('终极版-thunk')'。如果你想使用'import'或者'import *'作为从'redux-thunk'的thunk或者从'redux-thunk'中导入{thunk} – Rik
@Rik从“redux-thunk”导入thunk有什么不同?并从“redux-thunk”中导入*。 ?如果只有一个导出默认不应该都返回相同? – MistyK
说实话,我不知道为什么它不起作用。也许它是ES6语法。我不是一个打字大师。 – Rik