请解释此打字稿语法,涉及泛型和类型别名

问题描述 投票:1回答:2

我正在尝试遵循一些教程,并且在理解打字稿语法方面遇到困难。请提供以下打字稿语法的解释

1

type ValidationResult<T, U> = Partial<{ [Key in keyof T]: U }>;

我在打字稿手册的泛型章节中找不到一个描述上述声明的<T, U>部分的示例-这是什么意思?表示输入了T而输出了U

我了解部分知识,但似乎听不懂Partial<{ [Key in keyof T]: U }>,请解释其含义

2

type Validation<T, U> = (fields: T) => ValidationResult<T, U>; 

上面的语句是否为接受类型T并返回ValidationResult<T, U>的函数定义类型别名?>

U代表什么?

3
const hasLength = <T>(len: number, input: string | Array<T>) =>
input.length >= len;

const hasUserName = (input: string) =>
hasLength(1, input) ? true : "Name is required.";

<T>(len: number, input: string | Array<T>)代表什么?

<T>开头在上面的声明中是什么意思?

您能解释以上两个声明的含义吗?

以上两个声明const hasLengthconst hasUserName之间的关系是什么?

4
const fieldValues = {
    name: "Test User",
    level: 10,
    description: "Test Description"
};

type FieldValues = typeof fieldValues;

const validationRules = [
    ({ name }: FieldValues) => ({
        name: hasUserName(name)
    }),
    ({ description }: FieldValues) => ({
        description: hasValidDescription(description)
    })
];

我了解const fieldValues被分配了对象文字,因此fieldValues的值将为

{
    name: "Test User",
    level: 10,
    description: "Test Description"
}

现在,type FieldValues = typeof fieldValues;行是什么意思?

在以上声明中使用typeof的意义是什么?

也解释该语句之后的代码块

TIA!

我正在尝试遵循一些教程,并且在理解打字稿语法方面遇到困难。请提供以下打字稿语法的解释:1类型ValidationResult ...

typescript
2个回答
0
投票

对于初学者,“泛型”也称为“参数多态性”,第一个类型参数通常称为“ T”(对于Type),任何其他参数只是按字母顺序的下一个字符(T,U,V ...) 。


0
投票

1

© www.soinside.com 2019 - 2024. All rights reserved.