在.ts文件中重命名我的javascript文件并编译它们似乎并不像假设那么容易。我得到了很多类型错误,这让我感到不安,因为我期望类型脚本成为javascript的超集。
简单示例:
NULL
var initial = { alive: [], destroyed: [] };
if (modificationHelper.aliveCompare) {
initial.aliveValues = [];
}
原因是什么,我该怎么办?
答案 0 :(得分:3)
Typescript将验证您的代码是否类型安全。虽然语义错误(关于类型兼容性或缺少属性等)不会阻止编译器发出javascript,但忽略它们通常不是一个好主意。
您需要投入时间来消除这些错误。在这种情况下,Typescript不允许使用未知在该对象上的属性。第一次赋值时会推断出对象的类型,因此您可以尝试这样做:
var initial = { alive: [], destroyed: [], aliveValues : undefined as any[] };
if (modificationHelper.aliveCompare) {
initial.aliveValues = [];
}