Overview
Typescript does not support hasOwnProperty() function like javascript. To archive this we need to create an own helper function:
type Prop = string | number | symbol;
function hasOwnProperty<X extends {}, Y extends Prop>(obj: X, prop: Y): obj is X & Record<Y, unknown> {
return obj.hasOwnProperty(prop)
Typescript Code
type Prop = string | number | symbol;
const y = {name: "Helmut", id: 333}
function hasOwnProperty<X extends {}, Y extends Prop>(obj: X, prop: Y): obj is X & Record<Y, unknown> {
return obj.hasOwnProperty(prop)
}
let propertyName = 'name';
if (hasOwnProperty(y, propertyName) ) {
if (typeof y.name === 'string' && y.name) {
console.log("--- Property " + propertyName + " found - Content: " + y.name);
}
}
else {
console.log("--- Property " + propertyName + " not found");
}
propertyName = 'id';
if (hasOwnProperty(y, propertyName) ) {
if (typeof y.name === 'string' && y.id) {
console.log("--- Property " + propertyName + " found - Content: " + y.id);
}
}
else {
console.log("--- Property " + propertyName + " not found");
}
propertyName = 'name2';
if (hasOwnProperty(y, propertyName) ) {
if (typeof y.name === 'string' && y.name2) {
console.log("--- Property " + propertyName + " found - Content: " + y.name2);
}
}
else {
console.log("--- Property " + propertyName + " not found");
}
Output
[LOG]: "--- Property name found - Content: Helmut" [LOG]: "--- Property id found - Content: 333" [LOG]: "--- Property name2 not found"
Be First to Comment