【发布时间】:2020-10-06 08:36:56
【问题描述】:
我正在尝试学习一些教程,但我在理解 typescript 语法方面遇到了困难。请提供对以下打字稿语法的解释
1
type ValidationResult<T, U> = Partial<{ [Key in keyof T]: U }>;
我在 typescript 手册的泛型章节中找不到一个示例,该示例描述了上述语句的 <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 hasLength和const 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!
【问题讨论】:
标签: typescript