129. 字符串生成函数

困难0

实现一个高级工具类型 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
评论(0)
题库

TypeScript

加载中...