我正在将现有代码库迁移到TypeScript。从#5565开始,我知道我需要将外部模块的import语句从默认导入(import slug from 'slugg'
)更改为命名空间导入(import * as slug from 'slugg'
)。该网站现在大部分都在工作,但有些地方我错过了更改导入。实际使用模块时,这会导致运行时错误:Uncaught TypeError: slugg_1.default is not a function
。
有没有办法使这成为编译时错误?
我有两个tsconfig.json
个文件。一个用于前端(由awesome-typescript-loader
/ webpack
使用:
{
"compilerOptions": {
"jsx": "react",
"lib": ["es2015", "es2016", "es2017", "dom"],
"module": "commonjs",
"sourceMap": true,
"target": "es5"
}
}
一个用于后端(由ts-node
使用):
{
"compilerOptions": {
"module": "commonjs",
"target": "es2017"
}
}
起初我认为这可能是webpack
或ts-node
特有的问题,但webpack
构建时没有任何错误,服务器启动时没有任何错误。我是TypeScript的新手,所以任何见解都会受到赞赏。我确实发现another issue表明这种情况不会在编译时被捕获。