typescript - 声明后面明确定义的可选值
问题描述
假设我定义了一个这样的接口
interface User {
name: string;
address?: SomeObject;
}
在后面的代码中,我肯定通过一些动态过程来定义它。因为我不能/不想最初用虚拟对象定义它。
然后我想在函数中这样使用它
const foo=(name:string, address: SomeObject)=>{
console.log(address);
}
如果我这样使用它
foo(user.name, user.address)
我会得到 param2 可能是未定义的。
如果我这样做
const foo=(name:string, address?: SomeObject)=>{
console.log(address);
}
然后我可以调用该函数,但我必须检查函数体内是否定义了地址。
我想知道我是否可以这样
const foo=(name:string, address: SomeObject)=>{
console.log(address);
}
foo(user.name, user.address!) //where ! is a made up operator that says this object is definitely defined.
tldr:我想知道是否有办法告诉 TS,这个可能未定义的值肯定是由这次执行时间定义的。
解决方案
推荐阅读
- c++ - 推测执行和 malloc
- javascript - 调试器在转译文件(VS Code、Node、ES6)上设置断点
- anylogic - AnyLogic 中的参数变化:特定变化的数据
- r - 格式化数据帧上的时间值后,为什么基本 plot() 函数上没有打印时间?
- ruby - 在Ruby中的每个对象上覆盖诸如“#==”之类的方法?
- jboss - JBOSS-7.3.6 EAR文件中如何在多个WAR中共享会话
- discord.js - ReferenceError: 在初始化之前无法访问“”
- pandas - 如何解决“系列的真值不明确”错误?
- apache-flink - pyflink winerror 2 get_gateway()
- reactjs - 从 S3 获取带有 cookie 的图像以显示在反应上