基本上,当存在错误时,使Webpack捆绑源代码是不好的。但是,彻底重写我的TypeScript代码时,我经常需要检查console.log()
的输出。我将显示简化的示例。
假设,在下面的代码中,我决定将parameter
的类型从CertainType1
替换为CertainType2
:
testFunction(parameter: CertainType1): CertainTypeFoo {
const a: CertainTypeA = doSomethingWithCertainType1Or2(parameter);
// check "a" value here!
console.log(a);
// I don't care what occurs here YET
const b: CertainTypeB = doSomethingElseWithCertainType1(parameter);
const foo: CertainTypeFoo = getInstanceOfFoo(a, b);
// do something with foo...
return foo;
}
当我将testFunction(parameter: CertainType1): CertainTypeFoo
替换为testFunction(parameter: CertainType2): CertainTypeFoo
时,功能将失效,因为doSomethingElseWithCertainType1
仅需要CertainType1
。
但是我还不关心它:暂时,我需要检查const a
的值,并确保一切正常,const a
,我将前进并处理const b
。
不当的解决方案:
注释掉const b
行中的所有内容:testFunction
必须返回CertainTypeFoo
。假设通过其他方式获取模拟实例并不简单。
首先将所有代码重写为有效的TypeScript,然后再开始检查const a
:对于实际应用程序,“重写所有代码”可能要花费几个小时。
答案 0 :(得分:0)
@GeorgeP在他的评论中对TypeScript部分是正确的,但它也需要设置
module.exports = {
// ...
optimization: {
noEmitOnErrors: false
}
}
对于Webpack。
答案 1 :(得分:0)
只需将类型强制转换为您想要的类型:
testFunction(parameter: CertainType2): CertainTypeFoo {
const a: CertainTypeA = doSomethingWithCertainType1Or2(parameter);
// check "a" value here!
console.log(a);
// I don't care what occurs here YET
const b: CertainTypeB = doSomethingElseWithCertainType1(parameter as CertainType1);
const foo: CertainTypeFoo = getInstanceOfFoo(a, b);
// do something with foo...
return foo;
}
通过显式转换,您是在告诉打字稿您不在乎它认为(或不认为)该类型是什么,打字稿会对此予以尊重。
无需更改编译器标志