@fesjs/fes-design
Version:
fes-design for PC
45 lines (44 loc) • 1.02 kB
TypeScript
interface characterMap {
1: '1';
2: '2';
3: '3';
4: '4';
5: '5';
6: '6';
7: '7';
8: '8';
9: '9';
0: '0';
q: 'Q';
w: 'W';
e: 'E';
r: 'R';
t: 'T';
y: 'Y';
u: 'U';
i: 'I';
o: 'O';
p: 'P';
a: 'A';
s: 'S';
d: 'D';
f: 'F';
g: 'G';
h: 'H';
j: 'J';
k: 'K';
l: 'L';
z: 'Z';
x: 'X';
c: 'C';
v: 'V';
b: 'B';
n: 'N';
m: 'M';
[key: string]: string;
}
type char = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0' | 'q' | 'w' | 'e' | 'r' | 't' | 'y' | 'u' | 'i' | 'o' | 'p' | 'a' | 's' | 'd' | 'f' | 'g' | 'h' | 'j' | 'k' | 'l' | 'z' | 'x' | 'c' | 'v' | 'b' | 'n' | 'm';
type RestChars<T> = T extends `${char}${infer P}` ? P : '';
type UpperFirst<T> = T extends `${infer P}${string}` ? `${characterMap[P]}${RestChars<T>}` : T;
export declare function createKey<P extends string, S extends string>(prefix: P, suffix: S): S extends 'default' ? P : `${P}${UpperFirst<S>}`;
export {};