Вы можете сделать это, используя generics . В этом примере вы можете определить базовый тип IObject<T>
, где T представляет тип Dynami c, например:
type IObject<T> = {
prop1: T;
prop2: T;
}
Чем вы можете использовать напрямую IObject<number>
или IObject<number | string>
, где number | string
означает, что «prop1 может быть одним из обоих» (тип Union), или вы можете просто определить дополнительные типы, используя базовый тип IObject<T>
:
type IObjectNumber = IObject<number>;
type IObjectWithString = IObject<number | string>;
const objNum: IObjectNumber = { prop1: 10, prop2: 'abc' } // this will throw error
const objNumStr: IObjectWithString = { prop1: 10, prop2: 'abc' } // this will not throw error