Skip to main content


This is the official strategy from @automapper to work with Interfaces/Types along with Plain Objects


npm i @automapper/pojos

or with yarn:

yarn add @automapper/pojos


@automapper/pojos depends on @automapper/core

npm i @automapper/core

or with yarn:

yarn add @automapper/core


@automapper/pojos provides pojos as a MappingStrategyInitializer. Pass pojos() to createMapper to create a Mapper that uses pojos strategy.

import { pojos, PojosMetadataMap } from '@automapper/pojos';
import { createMapper, createMap, forMember, mapFrom } from '@automapper/core';

const mapper = createMapper({
strategyInitializer: pojos()

interface User {
firstName: string;
lastName: string;

interface UserDto {
firstName: string;
lastName: string;
fullName: string;

PojosMetadataMap.create<User>('SomeTokenForUser', {
firstName: String,
lastName: String

PojosMetadataMap.create<UserDto>('SomeTokenForUserDto', {
firstName: String,
lastName: String,
fullName: String

createMap<User, UserDto>(
d => d.fullName,
mapFrom(s => s.firstName + ' ' + s.lastName)
);<User, UserDto>(
{firstName: 'Auto', lastName: 'Mapper'},
// { firstName: 'Auto', lastName: 'Mapper', fullName: 'Auto Mapper' }

Read more about this strategy on pojos documentation