我想创建一个函数,该函数使用与接收到的原始对象相同的键但值等于的新对象null
。
所以...
function nullify(arg) {
var returnObj = {}
for (var key in arg) {
returnObj[key] = null
}
return returnObj
}
我想向此函数添加类型,以便当我尝试访问返回的对象上不存在的属性时,TypeScript编译器将发出警告。例如:
var nulled = nullify({
a: 1,
b: 2
})
console.log(nulled.foobar) // Error `foobar` doesn't exist.
这样有可能吗?也许通过使用泛型和keyof
?
抱歉,这里有完整的TypeScript新手
使用TS 2.1时,可以使用映射类型。默认情况下,实际上通常是一个类型type | number
。但是,如果您严格使用映射类型检查空对象,则是更具描述性的方法。
type Nullified<T> = {
[P in keyof T]?: null
}
function nullify<T>(arg:T) : Nullified<T> {
var returnObj = {}
for (var key in arg) {
returnObj[key] = null
}
return returnObj
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句