你不能這樣做,在JavaScript以及:
let bool = true;
console.log(bool == true); // true
console.log(bool === true); // true
bool ^= true;
console.log(bool == false); // true
console.log(bool === false); // false
正如你所看到的,「切換」後的值不是false
,這是一個0
。
這就是編譯器抱怨的原因,因爲您將變量的類型從boolean
更改爲number
。
如果你不介意這類型的變化,那麼你可以這樣做:
function toggle(arr: { propertyAlsoArray: number[] }[], i: number, j: number) {
arr[i].propertyAlsoArray[j] ^= 1;
}
let arr: { propertyAlsoArray: (boolean | number)[] }[];
toggle(arr as { propertyAlsoArray: number[] }[], 1, 1);
但是你現在!=
有什麼可能是最好的辦法。