00110-medium-capitalize

Back

// 여기 풀이를 입력하세요

type CharMap = {
  a: "A";
  b: "B";
  c: "C";
  d: "D";
  e: "E";
  f: "F";
  g: "G";
  h: "H";
  i: "I";
  j: "J";
  k: "K";
  l: "L";
  m: "M";
  n: "N";
  o: "O";
  p: "P";
  q: "Q";
  r: "R";
  s: "S";
  t: "T";
  u: "U";
  v: "V";
  w: "W";
  x: "X";
  y: "Y";
  z: "Z";
};

type MyUpperCase<T extends string> = T extends keyof CharMap ? CharMap[T] : T;

type MyCapitalize<S extends string> = S extends `${infer U}${infer Rest}`
  ? `${MyUpperCase<U>}${Rest}`
  : S;

Solution by awesomelon #33433

type MyCapitalize<S extends string> = S extends `${infer Start}${infer word}` ? `${Uppercase<Start>}${word}` : S

Solution by loevray #33327

type MyCapitalize<S extends string> = S extends `${infer F}${infer L}` ? `${Uppercase<F>}${L}` : S

Solution by Tubring25 #33311

type LowerToUpper = {
  a: "A";
  b: "B";
  c: "C";
  d: "D";
  e: "E";
  f: "F";
  g: "G";
  h: "H";
  i: "I";
  j: "J";
  k: "K";
  l: "L";
  m: "M";
  n: "N";
  o: "O";
  p: "P";
  q: "Q";
  r: "R";
  s: "S";
  t: "T";
  u: "U";
  v: "V";
  w: "W";
  x: "X";
  y: "Y";
  z: "Z";
};

type MyCapitalize<S extends string> =
  S extends `${infer FirstLatter extends keyof LowerToUpper}${infer Rest}`
    ? `${LowerToUpper[FirstLatter]}${Rest}`
    : S;

I guess the second extends is a condition (instead of a question like the first extends)

Solution by stavalfi #33263

// your answers
type MyCapitalize<S extends string> = S extends `${infer F}${infer R}` ? `${Uppercase<F>}${R}` : S

Solution by KeithChou #33194

// your answers

type MyCapitalize<S extends string> = S extends `${infer F}${infer R}` ? `${Capitalize<F>}${R}` : S

Solution by KeithChou #33193

// 解答をここに記入
type MyCapitalize<S extends string> = S extends `${infer A}${infer B}`
  ? `${Uppercase<A>}${B}`
  : S;

Solution by Yasunori-aloha #32902

type MyCapitalize<S extends string> = S extends `${infer F}${infer Rest}` ? `${Uppercase<F>}${Rest}` : '';

Solution by ZhipengYang0605 #32818

type MyCapitalize<S extends string> = S extends `${infer Fisrt}${infer Rest}` ? `${Uppercase<Fisrt>}${Rest}` : S;

Solution by malyanoff #32782

type MyCapitalize<S extends string> = S extends `${infer I}${infer Rest}`? `${Uppercase<I>}${Rest}`  :""

Solution by bananana0118 #32767

type CapitalizeV2<T extends string> = T extends`${infer FirstLetter extends string}${infer End}`
    ? `${Uppercase<FirstLetter>}${End}`
    : never

Solution by ZhulinskiiDanil #32677

// your answers

Solution by jiak-123 #32550

type MyCapitalize<S extends string> = S extends `${infer First}${infer Rest}` ? `${Uppercase<First>}${Rest}` : S

Solution by dev-hobin #32374

type Capitalize<S extends string> = S extends `${infer x}${infer tail}` ? `${Uppercase<x>}${tail}` : S;

Solution by rkamely #32058

// your answers
type MyCapitalize<S extends string> = S extends `${infer A}${infer B}`
  ? `${Capitalize<A>}${B}`
  : "";

Solution by pea-sys #31993

type MyCapitalize<S extends string> = S extends `${infer F}${infer Rest}` 
  ? `${F extends Uppercase<F> ? F : Uppercase<F>}${Rest}`
  : S;

Solution by kai-phan #31627

// 초기 답
type AlphabetTable = {
  a: 'A';
  b: 'B';
  c: 'C';
  d: 'D';
  e: 'E';
  f: 'F';
  g: 'G';
  h: 'H';
  i: 'I';
  j: 'J';
  k: 'K';
  l: 'L';
  m: 'M';
  n: 'N';
  o: 'O';
  p: 'P';
  q: 'Q';
  r: 'R';
  s: 'S';
  t: 'T';
  u: 'U';
  v: 'V';
  w: 'W';
  x: 'X';
  y: 'Y';
  z: 'Z';
};

type ExtractFromAlphabetTable<S> = S extends keyof AlphabetTable ? AlphabetTable[S] : S

type MyCapitalize<S extends string> = S extends `${infer First}${infer Rest}` ? `${ExtractFromAlphabetTable<First>}${Rest}` : S

// 최종 답
type MyCapitalize<S extends string> = S extends `${infer First}${infer Rest}`
  ? `${Uppercase<First>}${Rest}`
  : S; 

Solution by jinyoung234 #31608

// your answers

type ToCapitalize<S extends string> = S extends `${infer F}${infer R}` ? `${Uppercase<F>}${R}` : S;

Solution by AhmedRagabKamal #31498

type MyCapitalize<S extends string> = S extends `${infer A}${infer B}`
  ? `${Capitalize<A>}${B}`
  : "";

Solution by vipulpathak113 #31446

// 你的答案
type Capitalize<S extends string> = S extends `${infer x}${infer tail}` ? `${Uppercase<x>}${tail}` : S;

Solution by hytql8 #31401

type Space = ''
type MyCapitalize<S extends string> = S extends `${infer F}${infer R}` ? `${Uppercase<F>}${R}` : Space 

Solution by Zhen-code #31335

type MyCapitalize<S extends string> = S extends `${infer A}${infer B}` ? `${Uppercase<A>}${B}` : S;

Solution by eward957 #31234

type Capitalize<S extends string> = S extends `${infer x}${infer tail}` ? `${Uppercase<x>}${tail}` : S;

Solution by MyeonghoonNam #30956

// 你的答案
type Capitalize<T extends string> = T extends `${infer L}${infer R}` ? `${Uppercase<L>}${R}` : T

Solution by dengxueru #30934

type Map = {"a":"A","b":"B","c":"C","d":"D","e":"E","f":"F","g":"G","h":"H","i":"I","j":"J","k":"K","l":"L","m":"M","n":"N","o":"O","p":"P","q":"Q","r":"R","s":"S","t":"T","u":"U","v":"V","w":"W","x":"X","y":"Y","z":"Z"}

type MyCapitalize<S extends string> = S extends `${infer P}${infer Rest}` ? `${P extends keyof Map ? Map[P] : P}${Rest}` : ''

Solution by moonshadow-miao #30726

type Capitalize<T extends string> = T extends `${infer F}${infer R}`? `${Uppercase<F>}${R}`: T;


type capitalized = Capitalize<'hello world'> // expected to be 'Hello world'

Solution by rxMATTEO #30090

type MyCapitalize<S extends string> = S extends `${infer F}${infer R}` ? `${Capitalize<F>}${R}` : S;

Solution by giokaxo #29993

type Capitalize<T extends string> = T extends `${infer S}${infer R}` ? `${Uppercase<S>}${R}` : T;

Solution by 1587315093 #29796

type MyCapitalize<S extends string> = S extends `${infer First}${infer Rest}`
  ? `${Uppercase<First>}${Rest}`
  : S

Solution by agus-wesly #29688

// 여기 풀이를 입력하세요
type MyCapitalize<S extends string> = S extends `${infer First}${infer Last}` ? `${Uppercase<First>}${Last}` : S

Solution by eodnjs467 #29526