typeScript中的 ?: 问号冒号解释,ts可选参数

typeScript中的 ?: 问号冒号解释,ts可选参数

js 复制代码
function f(x: number, y?: number) {
 return x + (y || 0);
}
f(1, 2);
f(1);
f(1, undefined);
f(1, null); // error, 'null' is not assignable to 'number | undefined'

class C {
    a: number;
    b?: number;
}
let c = new C();
c.a = 12;
c.a = undefined; // error, 'undefined' is not assignable to 'number'
c.b = 13;
c.b = undefined; // ok
c.b = null; // error, 'null' is not assignable to 'number | undefined'

typeScript中的?:问号冒号表示此参数或属性可选,使用了 --strictNullChecks,可选参数或属性会被自动地加上 | undefined:

注意:1、不是三目运算符的问号冒号

2、可选参数必须放在所有参数的后面

3、可选参数不能赋默认值,因为默认参数其实就是可选参数的一种。

相关推荐
codingWhat10 小时前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js
码路飞11 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
臣妾没空11 小时前
里程碑5:完成框架npm包抽象封装并发布
前端·npm
Lee川11 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Wect11 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
cxxcode11 小时前
搞懂 JS 异步的底层真相:从 V8 源码看微任务与宏任务
前端
欧阳的棉花糖11 小时前
React 小误区:派生值 vs useEffect
前端
马可菠萝11 小时前
从零开始,用 Tauri + Vue 3 打造轻量级桌面应用
前端
陆枫Larry11 小时前
JavaScript 字符串处理实战:从 `startsWith` 到链式 `replace` 的避坑指南
前端
天蓝色的鱼鱼11 小时前
你的项目真的需要SSR吗?还是只是你的简历需要?
前端·架构