Интерфейс, который вы объявляете, не находится в глобальной области видимости, он находится в текущем модуле.Вам необходимо объявить его в глобальном формате:
import { Test } from "./mod2"; //LINE X
declare global {
interface Object {
GetFooAsString(): string;
}
}
Object.prototype.GetFooAsString = function () {
return this.GetFoo().toString();
}
Причина, по которой это происходит, заключается в том, что до тех пор, пока вы не добавите импорт или экспорт, файл считается простым сценарием, и все находится в глобальной области видимости.Когда вы добавляете импорт / экспорт, он становится модулем, и поэтому все находится в области видимости модуля.