用于转换可为空性的类型批注
Type annotation for converting nullability
我想要一个可以删除值的可空性的函数(如果值实际上是空的,则抛出异常),但我似乎无法正确获得类型注释。 我的第一次尝试是:
/**
* @param {?T} obj
* @param {string} message
* @return {!T}
* @template T
*/
function checkNotNull(obj, message) {
if (obj === null) {
throw message;
} else {
return obj;
}
}
不过,这似乎行不通。 如果我像foo(checkNotNull(someVar))
一样使用它(foo()
需要一个不可为空的参数),我仍然会收到TYPE_MISMATCH
错误(基本上是说该参数仍然被标记为可为空)。
有没有办法真正做到这一点? 还是我需要继续键入手动 null 检查,然后输入显式类型提示?
这在当前的实现中是不可能的。 计划中有几个变化允许这样做,但没有内在的。
相关文章:
- 布尔类型转换系统(Java)
- 为什么从字符串到整数的类型转换总是返回“”;0〃;
- 弱类型语言类型转换的意思在哪里,为什么使用.例如JavaScript
- jQuery data() 类型转换问题
- JavaScript 中的显式类型转换和类型
- Javascript类型转换悖论
- 将嵌套的 c# 类型转换为 json,并在 javascript 中使用它
- JSDoc 类型转换为“窗口”
- Dojo Dnd 问题:使用 JavaScript 通过 Dnd 项类型转换为 JSON
- jQuery:在 $.each 中从字符串类型转换为字符串对象
- 奇怪的JavaScript类型转换
- JavaScript 的 (0 == “”) === true 如何与 ECMA-262 类型转换规则一致
- JavaScript 括号将基元类型转换为对象
- JavaScipt的数据类型转换对于“==”运算符究竟是如何工作的
- 在数组中添加和减去数字索引值的类型转换
- Javascript/google闭包库中的类型转换
- 类型转换问题,如何使用好的旧===而不是===
- 是否可以像在Javascript对象中那样将整数值存储在localStorage中,并在不进行类型转换的情况下提取它
- javascript中带有无符号32位整数的位移位/类型转换
- Javascript中的类型转换