, :
JavaScript:
function test(object) {
var restOfKeys = [];
for (var _i = 1; _i < arguments.length; _i++) {
restOfKeys[_i - 1] = arguments[_i];
}
var propertyToTest;
if (object === undefined || !restOfKeys.length) {
return false;
}
propertyToTest = restOfKeys.shift();
if (restOfKeys.length) {
return test.apply(void 0, [object[propertyToTest]].concat(restOfKeys));
}
return object[propertyToTest] !== undefined;
}
var toTest = { a: { b: { c: "asd" } } };
alert(test(toTest, "a", "b", "c"));
TypeScript:
function test(object: any, ...restOfKeys: string[]) {
let propertyToTest: string;
if (object === undefined || !restOfKeys.length) {
return false;
}
propertyToTest = restOfKeys.shift();
if (restOfKeys.length) {
return test(object[propertyToTest], ...restOfKeys);
}
return object[propertyToTest] !== undefined;
}
var toTest = { a: { b: { c: "asd" } } };
alert(test(toTest, "a", "b", "c"));