почему когда я пытаюсь ввести код
declare interface String {
testsdfsdffds();
}
String.prototype.testsdfsdffds = () => {
};
это работает, но замена Object на String вызывает ошибки. Я думал, вы можете без проблем расширить Object?
Моя цель действительно состоит в том, чтобы имитировать функции расширения Kotlin apply и let, но я хотел бы понять, как / почему вы можете / не можете расширять объекты?
Нет, это не вызывает ошибки. Рассмотрите возможность предоставления stackoverflow.com/help/mcve, который может воспроизвести проблему. В любом случае модифицированные встроенные прототипы имеют сильный запах, и их следует избегать по возможности, т.е. почти всегда.





Какие ошибки возникают? Не могли бы вы вкратце объяснить, чего пытаетесь достичь (для тех, кто не знаком с Kotlin)?