mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
42 lines
966 B
TypeScript
42 lines
966 B
TypeScript
import extend = require('extend');
|
|
|
|
const objectBase = {
|
|
test: 'base'
|
|
};
|
|
|
|
const objectOne = {
|
|
test: 'one',
|
|
iamone: true
|
|
};
|
|
|
|
const objectTwo = {
|
|
test: 2,
|
|
iamtwo: true
|
|
};
|
|
|
|
const objectThree = {
|
|
iamthree: true,
|
|
depth: {
|
|
innerType: 'deep'
|
|
}
|
|
};
|
|
|
|
type ExtendedType = typeof objectBase & typeof objectOne;
|
|
const extended: ExtendedType = extend(objectBase, objectOne);
|
|
extended.test === 'one';
|
|
extended.iamone;
|
|
|
|
type MoreExtendedType = typeof objectBase & typeof objectOne & typeof objectTwo;
|
|
const moreExtended: MoreExtendedType = extend(objectBase, objectOne, objectTwo);
|
|
moreExtended.test === 2;
|
|
moreExtended.iamone;
|
|
moreExtended.iamtwo;
|
|
|
|
type DeepExtendedType = typeof objectBase & typeof objectOne &
|
|
typeof objectTwo & typeof objectThree;
|
|
const deepExtended = extend(true, objectBase, objectOne, objectTwo, objectThree);
|
|
deepExtended.iamone;
|
|
deepExtended.iamtwo;
|
|
deepExtended.iamthree;
|
|
deepExtended.depth.innerType === 'deep';
|