跳到主要内容

运算符

一、&


&交叉类型TypeScript 中,交叉类型是将多个类型合并为一个类型。我们可以通过 & 把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性

1.1 语法

type PointX = {
x: number;
}

type Point = PointX & {
y: number;
}

let point: Point = {
x: 1,
y: 2
}

二、|


|联合类型 表示一个值可以是几种类型之一,用竖线( |)分隔每个类型,所以 number | string | boolean 表示一个值可以是 numberstring,或 boolean

2.1 语法

let user: string | number | boolean = 'an'

三、!


!非空断言操作符 TypeScript 特有的,在 TypeScript 2.0 支持了这个特性。 在上下文中当类型检查器无法断定类型时,一个新的后缀表达式操作符 ! 可以用于断言操作对象是非 null 和非 undefined 类型的。具体而言,运算 x! 产生一个不包含 nullundefinedx 的值

3.1 语法

function sayHello(hello: string | undefined) {
const hi1 = hello!.toLowerCase() // OK
const hi2 = hello.toLowerCase() // Error: Object is possibly 'undefined'
}
type Type = { a: string } | null;

function Foo(params: Type) {
const a = params!;
console.log(a.a);

const b = params;
console.log(b.a); // Error: Object is possibly 'undefined'
}

四、?:


?:可选参数和属性 TypeScript 特有的,在 TypeScript 2.0 支持了这个特性。可选参数和属性会自动把 undefined 添加到他们的类型中,即使他们的类型注解明确不包含 undefined

4.1 语法

函数运用

function func(argu?:string){

}

接口运用

interface Person {
name?:string;
}