Есть функция getProperty, она принимает объект и ключ к нему. Задача: нам надо типизировать функцию, так, чтоб на строке 8 и 9 typescript начал ругаться.

Например, в объекте X нету ключа ‘m’ он ругается. Или в объекте { asd: 123 } нет ключа «a», он ругается.

Естевственно должно работать под любой объект, под любой ключ, универсально.

const X = { a: 1, b: 2, c: 3, d: 4 }

function getProperty(obj, key){
    return obj[key];
}

getProperty(X, 'a');
getProperty(X, 'm'); // Argument of type '"m"' is not assignable to parameter of type '"a" | "b" | "c" | "d"'
getProperty({ asd: 123 }, 'a'); // Argument of type '"a"' is not assignable to parameter of type '"asd"'