我正在致力于enhanced-resolve。
我完成了大部分工作。
然而, enhanced-resolve 的结构有点过时了。编写the entry module的定义很难。
如何将以下样式的代码转换为打字稿定义(删除不相关的代码)?
// here is on key point, export assignment
module.exports = function resolve(context, path, request, callback) {
};
module.exports.sync = function resolveSync(context, path, request){
};
// here is another key point, nested export on a function
module.exports.loader = function resolveLoader(context, path, request, callback) {
};
module.exports.loader.sync = function resolveLoaderSync(context, path, request) {
};
PS:2016-11-5
请参阅partly transformed code。我不知道如何完成的 Only 工作是出口事项。由于导出代码应使用Export assignments
来实现与webpack的兼容性。
我只是想知道是否存在解决方案? 或者我应该更改图书馆的出口签名?
答案 0 :(得分:0)
作为一般经验法则(如果你想要es6 / 7/2016 / /谁知道他们现在称之为什么,这几乎是正确的):
虽然require
与typescript完美配合,但没有关于返回类型的信息。因此值得使用import
s
import * as ResolverFactory from "./ResolverFactory"
import { Stuff, OtherStuff } from "./ResolverFactory"
这只是一个更好的语法:
export function resolve(context, path, request, callback) {
//...
}
或
export const resolve = (context, path, request, callback) => {
//...
}
由于您正在使用 Type 脚本,因此值得逐渐向您的参数,字段等添加类型。不幸的是我无法解决这个问题,因为我没有关于代码功能的上下文。如果它使用框架或是框架的插件,那么总是值得看看它们是否有自己的打字稿定义,您可以自己使用。