运算符
一、&
&
交叉类型 在 TypeScript
中,交叉类型是将多个类型合并为一个类型。我们可以通过 &
把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性
1.1 语法
type PointX = {
x: number;
}
type Point = PointX & {
y: number;
}
let point: Point = {
x: 1,
y: 2
}
二、|
|
联合类型 表示一个值可以是几种类型之一,用竖线( |
)分隔每个类型,所以 number | string | boolean
表示一个值可以是 number
, string
,或 boolean
2.1 语法
let user: string | number | boolean = 'an'
三、!
!
非空断言操作符 TypeScript
特有的,在 TypeScript 2.0
支持了这个特性。 在上下文中当类型检查器无法断定类型时,一个新的后缀表达式操作符 ! 可以用于断言操作对象是非 null
和非 undefined
类型的。具体而言,运算 x!
产生一个不包含 null
和 undefined
的 x
的值
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;
}