-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature]: formatSizeStyleValue #345
Comments
안녕하세요! 해당 라이브러리에 관심을 가지고 있습니다! 제가 해당 기능 구현해도 괜찮을까요? 인터페이스는 아래와 같이 생각하고 있습니다. 감사합니다. 질문 사항
인터페이스const SUFFIX_UNITS = [
'cm',
'mm',
'Q',
'in',
'pc',
'pt',
'px',
'em',
'ex',
'ch',
'rem',
'vw',
'vh',
'vmin',
'vmax',
'%',
] as const;
type SuffixUnit = (typeof SUFFIX_UNITS)[number];
export function formatSizeStyleValue(value: string): string;
export function formatSizeStyleValue(value: number): string;
export function formatSizeStyleValue(value: number, suffix: SuffixUnit): string;
export function formatSizeStyleValue(
value: string | number,
suffix?: SuffixUnit
): string { /* logic */ } |
@99mini 검토 후에 빠른 시일 내로 의견을 남기도록 하겠습니다! 많은 관심 감사합니다 😀 |
인자의 타입을 최대한 좁혀주는 것이 좋을 것 같습니다 :)
지금 고민해보니 value로 문자열까지 타입을 열어주는게 적절한지 고민이네요 ㅎㅎ 문자열을 받게되면 suffix가 붙은 여부, style size가 적절한지 등의 별도의 검증 처리가 필요해서 복잡도가 높아 질 것 같네요. 물론, 문자열인 경우 그냥 그대로 반환하는 방법이라면 크게 복잡도는 없겠지만... 숫자 타입만 받을 수 있게 타입을 좁히고, suffix를 붙여주는 형태로 구현을 하면 로직을 단순화할 수 있을 것 같습니다. 어떻게 생각하실까요 !? 🤗 |
답글 확인하였습니다! ssi02014님의 의견에 동의합니다~! value의 타입은 number로 제한하고, suffix 또한 string이 아닌 const SUFFIX_UNITS = [
'cm',
'mm',
'Q',
'in',
'pc',
'pt',
'px',
'em',
'ex',
'ch',
'rem',
'vw',
'vh',
'vmin',
'vmax',
'%',
] as const;
type SuffixUnit = (typeof SUFFIX_UNITS)[number];
export function formatSizeStyleValue(value: number): string;
export function formatSizeStyleValue(value: number, suffix: SuffixUnit): string;
export function formatSizeStyleValue(
value: number,
suffix?: SuffixUnit
): string { /* logic */ } |
Package Scope
Overview
suffix 타입은
https://developer.mozilla.org/ko/docs/Learn/CSS/Building_blocks/Values_and_units#%EA%B8%B8%EC%9D%B4 참고
The text was updated successfully, but these errors were encountered: