【发布时间】:2022-01-14 09:46:45
【问题描述】:
我正在尝试通过传入一个我想用作类型的字符串来生成一个const 类型化的对象,这可能吗,我已经尝试了以下方法,但它输出了错误的类型。
const test = <T> (name: T) => {
const hi: { name: T } = {
name
} as const
return hi
}
const test1 = test('hello')
我希望这是类型
{
name: 'hello';
}
但它是类型
{
name: string;
}
【问题讨论】:
-
你需要写
test('hello' as const),否则会推断test<string>(…)。 -
你已经很接近了,缺少的部分主要是
as constonhello。 -
真棒......唯一的麻烦是我试图摆脱开发人员不得不写
as const,因为我认为他们会错过这一点,有没有办法强制执行,或者有一个可以为我添加这个作为助手的函数? -
为什么要强制开发者使用常量字符串类型?如果他们使用
string会有什么问题?
标签: javascript typescript