我的代码类似于下面的代码(--strictNullChecks
):
interface Apple {
id: string;
}
const applesWithoutError = [{}] as Apple[]; // No error
const applesWithError: Apple[] = [{}]; // Error: Property 'id' is missing in type '{}'type 'Apple[]'
为什么applesWithoutError
未被检测为编译错误?
答案 0 :(得分:5)
这是因为类型断言(a.k.a强制转换)会覆盖编译器对类型的了解。因此,如果你告诉编译器DX
是var weapon = game.add.weapon(10, 'bullet');
enemies.forEachAlive(function(enemy){
if(enemy.name == 'p1'){
player.rotation = game.physics.arcade.angleBetween(player, enemy);
weapon.fireAtSprite(enemy);
}
});
它将忽略它所知道的真实,而支持你所说的是真的。