typescript的?? 和?: 和?.什麼意思

?:是指可選參數,能夠理解爲參數自動加上undefinedcode

function echo(x: number, y?: number) {
    return x + (y || 0);
}
getval(1); // 1
getval(1, null); // error, 'null' is not assignable to 'number | undefined'
interface IProListForm {
  enterpriseId: string | number;
  pageNum: number;
  pageSize: number;
  keyword?: string; // 可選屬性
}

?? 和 || 的意思有點類似,可是又有點區別,??相較||比較嚴謹, 當值等於0的時候||就把他給排除了,可是?? 不會orm

console.log(null || 5)   //5
console.log(null ?? 5)     //5

console.log(undefined || 5)      //5
console.log(undefined ?? 5)      //5

console.log(0 || 5)       //5
console.log(0 ?? 5)      //0

?.的意思基本和 && 是同樣的
a?.b 至關於 a && a.b ? a.b : undefinedget

const a = {
      b: { c: 7 }
};
console.log(a?.b?.c);     //7
console.log(a && a.b && a.b.c);    //7
相關文章
相關標籤/搜索