每当我必须使用具有组合联合类型的对象时,打字稿都会抱怨我尝试访问的属性,并且我也没有获得自动完成功能。例如这个:
interface A {
id: string;
value: number;
}
interface B {
result: string;
}
export type Types = A | B;
function test(obj: Types) {
obj.result; // want to work with obj as though it implements interface B
}
Run Code Online (Sandbox Code Playgroud)
当我从打字稿访问result、id、 时,出现错误:value
Property 'result' does not exist on type 'Types'.
Property 'result' does not exist on type 'A'
Run Code Online (Sandbox Code Playgroud)
有什么方法可以缩小接口类型,以便获得更好的 IDE 体验吗?
我知道没有BackgroundImage为 ListView 类调用属性- 只有BackgroundColor属性,但这不是我要找的。有没有办法将背景图像添加到 ListView,这样当我滚动图像时,图像会保持原位,并且在滚动时图块只是“移动”在图像上。
将图像添加到ContentPage也不起作用,因为 ListView 只是覆盖它。
我正在制作一个基于太空入侵者的2D java游戏.在我的Game类中,我有以下3个字段:
//enemies left to kill
private LinkedList<Enemy> enemiesLeft = new LinkedList<Enemy>();
//enemies killed
private LinkedList<Enemy> enemiesKilled = new LinkedList<Enemy>();
//missiles that have been fired
private LinkedList<Missile> missiles = new LinkedList<Missile>();
Run Code Online (Sandbox Code Playgroud)
在我的checkCollision()方法,我通过每个运行Enemy的enemiesLeft列表,并检查每次碰撞Missile的missiles列表,但它抛出一个ConcurrentModificationException.
这是checkCollision()方法:
private void checkCollisions(){
//make an iterator over enemies
ListIterator<Enemy> iterEnemies = enemiesLeft.listIterator();
//loop through enemies
while(iterEnemies.hasNext()){
//error is thrown at below line
Enemy e = iterEnemies.next(); //current Enemy
//go through each Missile
ListIterator<Missile> …Run Code Online (Sandbox Code Playgroud)