gpt4 book ai didi

typescript - 类型 'T' 不可分配给类型 'string'

转载 作者:行者123 更新时间:2023-12-04 13:17:07 25 4
gpt4 key购买 nike

问题是:我想创建一个获取参数并返回相同类型的函数。

我做了一个最简单的例子:

type Test = <T>(arg: T) => T;
const test: Test = (arg: string) => arg;

这个测试类型函数的简单实现抛出错误“类型'T'不能分配给类型'字符串'”

有人可以解释一下为什么不使用模板化参数中的 Prop 时会发生此错误事件吗?

最佳答案

https://github.com/Microsoft/TypeScript/issues/30496实际上有答案:Test是泛型类型。您的定义不符合泛型类型,因为 T不能分配给 string .您应该可以使用 test<number>(num)并让它也能工作,但如果 arg 那就不兼容了是一个字符串。

不过,您可以使类型通用。这将允许您在声明函数类型时缩小类型。

type Test<T> = (arg: T) => T;
const test<string> = arg => arg; //arg is a string;

关于typescript - 类型 'T' 不可分配给类型 'string',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59270520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com