You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript中返回Template Literal Type类型值?

解决方法

方法1:改用模板字符串语法替换加号拼接

将返回语句换成模板字符串形式后,TypeScript会自动推断结果符合HelloSomething类型:

type HelloSomething = `Hello ${string}`

const string = 'World'
function sayHello(string: string): HelloSomething {
  return `Hello ${string}`
} 

方法2:使用类型断言

如果必须保留加号拼接写法,可通过类型断言明确告知TypeScript返回值符合目标类型:

type HelloSomething = `Hello ${string}`

const string = 'World'
function sayHello(string: string): HelloSomething {
  return ('Hello ' + string) as HelloSomething
} 

注意:类型断言会跳过TypeScript的类型检查,仅当你能确保返回值绝对符合HelloSomething格式时才建议使用,避免引入类型安全隐患。

原因说明

TypeScript对'Hello ' + string这类字符串拼接的类型推断结果是宽泛的string,而HelloSomething是更具体的模板字面量子类型。使用模板字符串时,TS能识别其结构匹配模板字面量定义,自动完成类型匹配;但加号拼接无法触发这种精确推断,因此需要手动处理。

内容的提问来源于stack exchange,提问作者Ooker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:05:03