提问人:ypa y yhm 提问时间:9/5/2023 最后编辑:Heretic Monkeyypa y yhm 更新时间:9/5/2023 访问量:26
这两个“类型”定义之间有什么区别,它们具有不同的通用位置,以及如何使用它们?[复制]
What's the different between these two `type` define which have different generic place, and how to use them? [duplicate]
问:
我发现了 2 个不同的:type
type Pair = <Head, Tail> (head: Head) => (tail: Tail) => {head: Head; tail: Tail;}
type Pair <Head, Tail> = (head: Head) => (tail: Tail) => {head: Head; tail: Tail;}
唯一的区别是 的地方。<Head, Tail>
它们都是合法的,但在使用时有所不同。
如:
当我定义一个函数时,我可以像这样使用第一个定义:pair
type
type Pair = <Head, Tail> (head: Head) => (tail: Tail) => {head: Head; tail: Tail;} ;
const pair: Pair = <Head, Tail> (head: Head) => (tail: Tail) => ({head, tail}) ;
const result = pair (1) ("two") ;
console.log(result); // {head: 1, tail: "two"}
但是当我想使用第二个定义时,我只能这样写:type
pair
type Pair <Head, Tail> = (head: Head) => (tail: Tail) => {head: Head; tail: Tail;} ;
const pair: Pair<number, string> = <Head, Tail> (head: Head) => (tail: Tail) => ({head, tail}) ;
const result = pair (1) ("two") ;
console.log(result); // {head: 1, tail: "two"}
但这不应该叫,我们至少应该叫它,但这不是我想要的。pair
number_string_pair
使用 TypeScript v5.2.2,这是测试。
老实说,我想知道如何使用第二个类型 Pair
定义来对
的类型符号,但是我找不到它,所以我问了这个问题......
而且,我想知道第一个是什么意思......我知道是什么意思,意志与,但是如果我定义,我不能像...那么,第二种类型 Fn
或第一种类型 Pair
有什么用,它们的含义是什么?type Pair
type Fn <X, Y> = (x: X) => Y
Fn<number, string>
(x: number) => string
type Fn = <X, Y> (x: X) => Y
Fn<number, string>
答: 暂无答案
评论
type Pair <Head, Tail> = (head: Head) => (tail: Tail) => {head: Head; tail: Tail;}
Pair
Head/Tail