// 여기 풀이를 입력하세요
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;
Trim, TrimLeft
と同じ様なもので、文字列の1文字目をinfer A
それ以降をinfer B
として定義する。Uppercase
を使用して大文字へ変換する。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