这篇文章主要讲解了“TypeScript条件类型怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TypeScript条件类型怎么使用”吧!当 extends 用于表示条件判断时,可以总结出以下规律若位于 extends 两侧的类型相同,则 extends 在语义上可理解为 ===,可以参考如下例子:若位于 extends 右侧的类型包含位于 extends 左侧的类型(即狭窄类型 extends 宽泛类型)时,结果为 true,反之为 false。可以参考如下例子:当 extends 作用于对象时,若在对象中指定的 key 越多,则其类型定义的范围越狭窄。可以参考如下例子:考虑如下 Demo 类型定义:结合用于条件判断时的 extends,可知 ‘a’ | ‘b’ | ‘c’ extends ‘a’ 是 false, 因此 Demo 结果是 ‘a’ | ‘b’ | ‘c’ 么?
查阅官网,其中有提到:When conditional types act on a generic type, they become distributive when given a union type.即当条件类型作用于泛型类型时,联合类型会被拆分使用。即 Demo 会被拆分为 ‘a’ extends ‘a’、’b’ extends ‘a’、’c’ extends ‘a’。用伪代码表示类似于:此外根据 never 类型的定义 —— never 类型可分配给每种类型,但是没有类型可以分配给 never(除了 never 本身)。即 never | ‘b’ | ‘c’ 等价于 ‘b’ | ‘c’。因此 Demo 的结果并不是 ‘a’ | ‘b’ | ‘c’ 而是 ‘b’ | ‘c’。心细的读者可能已经发现了 Demo 类型的声明过程其实就是 TypeScript 官方提供的工具类型中 Exclude
中满足 keys 类型的属性值。
}
interfaceTodo{
title:string;
description:string;
completed:boolean;
}
typeT=Omit
type Demo
(arg:Head)=>HasTailextendstrue?Curry
(arg:Head)=>(HasTailextendstrue?Curry
type ReturnType
这篇“vue静态路由如何写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue静态路由如何写”文章吧。 Vue是一款流行的JavaScript框…