Skip to content

๐Ÿ“‹ Mapping data with map or object in the same interface and support types Key and value in typescript

License

Notifications You must be signed in to change notification settings

damartripamungkas/mapping-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MAPPING-DATA

GitHub top language Made by Repository size GitHub last commit

๐Ÿ“– Description :

This package is made for those of you who want the key and value to have the same type of type, because using new Map() and defining the type to the map then only the key works while the value does not, I give an example below:

Using Map

type TypeStateAs = {
  name: string
  age: number
  human: boolean
}
const state = new Map<keyof TypeStateAs, TypeStateAs[keyof TypeStateAs]>()
state.set(`name`, true) // is not an error, even though the value type is not boolean. expect this to be an error

Using Package

import { MappingMap } from "mapping-data"

type TypeStateAs = {
  name: string
  age: number
  human: boolean
}
const state = new MappingMap<keyof TypeStateAs, TypeStateAs[keyof TypeStateAs], TypeStateAs>()
state.set(`name`, true) // this is will throw error in editor code, because value type `name` is string

๐Ÿ”ฎ Cheatsheet

If you only need types for the .set() and .get() functions without having to use classes from the package you can import and define them as below :

import type { MappingMap } from "mapping-data"

type TypeStateAs = {
  name: string
  age: number
  human: boolean
}
const state: MappingMap<keyof TypeStateAs, TypeStateAs[keyof TypeStateAs], TypeStateAs> = new Map() as any
state.set(`name`, true) // this is will throw error in editor code, because value type `name` is string

๐Ÿ’ป Step to install :

npm install mapping-data

โœ๏ธ Example :

see full here

import { MappingMap, MappingObj } from "mapping-data"

type TypeStateAs = {
  name: string
  age: number
  human: boolean
}
const state = new MappingMap<keyof TypeStateAs, TypeStateAs[keyof TypeStateAs], TypeStateAs>()
state.set(`name`, `damar`)
state.get(`name`) // damar
state.jsonObject() // {name:"damar"}
state.jsonString() // "{"name":"damar"}"

๐Ÿงพ Pre-Requisistes :

node.js

๐Ÿ“ License :

Licensed under the MIT License.

Releases

No releases published

Packages

No packages published