首页 > 其他分享 >[Typescript] 115. Hard - Drop String

[Typescript] 115. Hard - Drop String

时间:2022-11-25 01:22:05浏览次数:58  
标签:Typescript String _____________ DropString 115 extends Expect type infer

Drop the specified chars from a string.

For example:

type Butterfly = DropString<'foobar!', 'fb'> // 'ooar!'

 

/* _____________ Your Code Here _____________ */
type StringToUnion<S> = S extends `${infer F}${infer RT}` ? F | StringToUnion<RT>: never;
type DropString<S, R> = R extends '' ? S : S extends `${infer F}${infer RT}`
  ? F extends StringToUnion<R> ? DropString<RT, R>: `${F}${ DropString<RT, R>}` 
  : S;
  
/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

type cases = [
  Expect<Equal<DropString<'butter fly!', ''>, 'butter fly!'>>,
  Expect<Equal<DropString<'butter fly!', ' '>, 'butterfly!'>>,
  Expect<Equal<DropString<'butter fly!', 'but'>, 'er fly!'>>,
  Expect<Equal<DropString<' b u t t e r f l y ! ', 'but'>, '     e r f l y ! '>>,
  Expect<Equal<DropString<'    butter fly!        ', ' '>, 'butterfly!'>>,
  Expect<Equal<DropString<' b u t t e r f l y ! ', ' '>, 'butterfly!'>>,
  Expect<Equal<DropString<' b u t t e r f l y ! ', 'but'>, '     e r f l y ! '>>,
  Expect<Equal<DropString<' b u t t e r f l y ! ', 'tub'>, '     e r f l y ! '>>,
  Expect<Equal<DropString<' b u t t e r f l y ! ', 'b'>, '  u t t e r f l y ! '>>,
  Expect<Equal<DropString<' b u t t e r f l y ! ', 't'>, ' b u   e r f l y ! '>>,
]

 

标签:Typescript,String,_____________,DropString,115,extends,Expect,type,infer
From: https://www.cnblogs.com/Answer1215/p/16923989.html

相关文章

  • String 字符串常用的方法
    String字符串常用的方法 <body><script>//1.split(用于把字符串分割为数组)把字符串转换为数组和join()相反letstr="pink$red$blue";......
  • TypeScript类型(二)
    对象 示例://#regionjs写法//object表示一个js对象leta:object;a={};a=function(){};//#endregion//#regionTypeScript写法//{}用来指定对......
  • TypeScript类型声明
    基本类型类型声明类型声明是TS非常重要的一个特点通过类型声明可以指定TS中变量(参数、形参)的类型指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型......
  • StringTable
    1.StringTable特性  2.StringTable位置   (多个jvm参数用空格分割)  3.StringTable垃圾回收 4.StringTable性能调优1.通过设置桶个数-XX:StringTabl......
  • 小程序 XQTypeScriptFramework 使用
    说明XQTypeScriptFramework隶属于XQFramework下JS基础性框架部分XQFramework励志将开发将常用开发语言基础性框架统一汇总,为全站开发使用到的基础语法进行统一,拜......
  • java常用类之String
    packagecom.Lucky.OftenClass;importjava.util.Arrays;/*String是不可变字符串序列,所谓的String的方法都是新增一个String拓展:JDK9时,将String......
  • vector<vector<string>> 二维向量遍历输出
    在编程中经常使用二维向量组成的数组,有时候就需要遍历输出,想了下面的方式,可以得到遍历结果#include<stdio.h>#include<vector>#include<string>#inclu......
  • [第三篇]object c中的tostring和构造与NSString格式化
    对象的​​description​​​方法类似java的​​toString​​方法重写构造似乎自定义了构造并不影响默认构造的使用.也就是定义了之后还是可以再次定义.objectc的对象判断......
  • Java: Strings
    StringMethods:Stringtxt="HelloWorld";System.out.println(txt.toUpperCase());//Outputs"HELLOWORLD"System.out.println(txt.toLowerCase());//Outp......
  • String.join()方法的功能简介说明
    转自:http://www.java265.com/JavaCourse/202206/3733.htmlString简介:  string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。在java......