129. 字符串生成函数
困难
实现一个高级工具类型 Format<T extends string> ,根据传入的字符串模板 T ,返回一个类型。
该模板字符串可能包含占位符(比如 %s 和 %d ),这些占位符代表不同的参数类型。
具体来说:
%s应该匹配一个string类型的参数。%d应该匹配一个number类型的参数。
要求:
- 你需要根据模板字符串中的占位符动态地生成类型,这些占位符应该按照顺序匹配传入的参数类型。
- 对于不含占位符的字符串,返回
string类型。
以下是一些例子的分析:
-
例子1:
type FormatCase1 = Format<"%sabc"> // FormatCase1 : string => string%s表示需要一个string类型的参数,后面的abc是固定文本,因此返回类型是string => string,表示输入一个string类型的参数,返回string类型的结果。
-
例子2:
type FormatCase2 = Format<"%s%dabc"> // FormatCase2 : string => number => string%s表示需要一个string类型的参数,%d表示需要一个number类型的参数。返回类型应是string => number => string,表示先传入一个string,再传入一个number,最后返回一个string。
-
例子3:
type FormatCase3 = Format<"sdabc"> // FormatCase3 : string- 这个模板字符串中没有占位符,只有普通的文本,所以返回类型是
string。
- 这个模板字符串中没有占位符,只有普通的文本,所以返回类型是
-
例子4:
type FormatCase4 = Format<"sd%abc"> // FormatCase4 : string%后面没有具体的占位符格式,这样的情况下也应该返回string。