我为我的一些项目创建了一个 es6 库。
当我导入这个库时,所有静态函数都会引发错误。
这是一个例子。
我的班级(es6):
class JsonSerializer {
static toJson(node) { /* some code */ }
}
export default JsonSerializer
打字稿定义文件:
export class JsonSerializer {
static toJson(root: Node): any
static fromJson(config: any): Node
}
我像这样导入我的课程
import {JsonSerializer} from 'ls-serializer'
当我尝试使用toJson
静态方法时。
它给了我以下错误:
_lsSerializer.JsonSerializer.toJson is not a function
我对所有静态方法都有同样的错误。
我错过了什么 ?
这是我的库 webpack 配置:
const path = require('path');
module.exports = {
entry : {
serializer : './src/serializer.js'
},
output : {
path : path.resolve(__dirname, 'dist'),
filename : '[name].bundle.js',
libraryTarget: 'commonjs-module'
},
resolve : {
extensions : ['.js', '.jsx'],
alias : {
'@' : path.resolve(__dirname, 'src'),
'~' : path.resolve(__dirname, 'examples')
}
},
devServer : {
contentBase : path.resolve(__dirname, 'dist'),
compress : true,
port : 9000
},
module : {
rules : [{
test : /\.(js|jsx)$/,
exclude : /node_modules/,
loader : 'babel-loader'
}, {
test : /\.(html)$/,
use : {
loader : 'html-loader',
options : {
attrs : [':data-src']
}
}
}]
},
devtool : 'source-map',
mode : 'development'
};
这是./src/serializer.js
文件代码:
import JsonSerializer from './serializers/JsonSerializer'
export {
JsonSerializer, /* other exports*/
}
找到问题了,有点可怜……
在我的代码中 toJson 方法以toJSON
大写部分命名......并且在我的打字稿声明文件中以驼峰式命名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句