是否可以使传递给函数的value成为TypeScript中的部分字符串(即子字符串

有没有类似的事情?

function transform( str: Substring<'Hello world'> ) {
    // ...
}

然后,当我调用该函数时,我可以传递该字符串的子字符串

transform( 'world' );
// or
transform( 'Hello' );
// or
transform( 'ello' ); // Is valid because it exists in hello
// or
transform( 'orl' ); // Is valid because it exists in world

// Is not valid, altough individual letters exists 
// they are not in the right order
transform( 'hlowrld' ) 

推荐答案

您当然可以使该函数成为泛型,并判断T是否是Hello worldtemplate literal types的子字符串.

function transform<
  T extends string
>(str: "Hello world" extends `${string}${T}${string}` ? T : never) {}

Playground

Typescript相关问答推荐

使用FormArray在Angular中添加排序

无法从应用程序内的库导入组件NX Expo React Native

如何在TypeScript对象迭代中根据键推断值类型?

在配置对象上映射时,类型脚本不正确地推断函数参数

contextPaneTitleText类型的参数不能分配给remoteconfig类型的关键参数'""'''

如何按不能保证的功能过滤按键?

TypeScrip原始字符串没有方法

通过字符串索引访问对象';S的值时出现文字脚本错误

如何在深度嵌套的Reaction路由对象中隐藏父级?

在列表的指令中使用intersectionObservable隐藏按钮

为什么我的查询钩子返回的结果与浏览器的网络选项卡中看到的结果不同?

如何过滤文字中的类对象联合类型?

ANGLE NumberValueAccessor表单控件值更改订阅两次

声明遵循映射类型的接口

如何定义这样一个TypeScript泛型,遍历路由配置树并累积路径

在单独的组件中定义React Router路由

定义一个只允许来自另一个类型的特定字符串文字的类型的最佳方式

确保财产存在

Typescript 确保通用对象不包含属性

在Nestjs中,向模块提供抽象类无法正常工作