如何解决如何在ts-loader自定义插件中初始化TypeChecker?
在我的webpack.config.js
文件中,我像这样加载ts-loader:
{
test: /\.tsx?$/,loader: 'ts-loader',exclude: /node_modules/,options: {
getCustomTransformers: program => {
return {
before: [
StringTransformer(program),],}
},transpileOnly: true,compilerOptions: {
sourceMap: true
}
}
},
我通过以下方式初始化StringTransformer
:
var transformer = function(typechecker) {
return function (context) {
var visitor = function (node) {
const typeCheck = typechecker.getTypeAtLocation(node);
console.log('type ',typeCheck);
return ts.visitEachChild(node,visitor,context);
};
return function (node) {
return ts.visitNode(node,visitor);
};
};
}
var StringTransformer = function(program) {
const typeChecker = program.getTypeChecker();
return transformer(typeChecker);
}
exports["default"] = StringTransformer;
运行构建时,我希望在console.log中看到我拥有的所有不同类型的节点。
相反,我主要看到typeCheck.intrinsicName
等于“错误”。 (有时有“数字”和“字符串”,但我定义的接口都不存在,并且未根据预期的类型分析变量/表达式)
好像我传递给转换器的program
var没有足够的信息来创建正确的TypeChecker实例。
我在做什么错了?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。