Я хочу экспортировать обернутый интерфейс объекта.
interface Wrap<T> {
original: T
}
export interface WrappedObject extends Wrap<Object> { //It is wrapped Object.
}
//It works
let a : WrappedObject = {
original : {
example:3
}
};
console.log(a.original.hasOwnProperty("example"));
Но если я изменю "WrappedObject" на "Объект", Wrap<Object>
будет работать как Wrap<wrapped object>
. Объект ссылается на себя.
interface Wrap<T> {
original: T
}
export interface Object extends Wrap<Object> { //It is wrapped Object.
}
//It doesn't work.
let a : Object = {
original : {
example:3
}
};
console.log(a.original.hasOwnProperty("example"));
//But it work.
let a : Object;
a.original.original.original.original;
Я хочу, чтобы Объект не ссылался на себя.