Typescript面试题

类型断言as

用来告诉解析器变量的实际类型
语法:
变量 as 类型:a as string
<类型> 变量: a

&用法

let j: {name: string} & {age: number};
j = {name: ‘123’, age; 1}

类型的别名

type myType = 1 | 2 | 3 | 4
let a: myType
let b: myType

抽象类

以abstract开头的类是抽象类
抽象类没有方法体
抽象类不能用来创建对象
抽象类就是专门用来被继承的类

抽象方法只能定义在抽象类种,子类必须对抽象方法进行重写

泛型

在定义函数或是类时,如果遇到类型不明确就可以使用泛型
function fn(a: T): T {
return a
}
可以直接调用泛型函数
fn(a: 10) // 不指定泛型,TS可以自动对类型进行推断
fn(a: ‘hello’) // 指定泛型

泛型可以同时指定多个
function fn2<T, K>(a: T, b: K): T{
return a
}
fn2<number, string>(a: 1, b: ‘1’)

interface Inter{
length: number
}

T extends Inter 表示泛型T必须是Inter实现类(子类)
function fn3(a: T): number{
return a.length
}

基础类型

number,string,boolean,null,undefined

对象:

{} 用来指定对象可以包含哪些属性
语法:{属性名:属性值,属性名:属性值}
在属性名后加上?,表示属性是可选的
let b: {name: string, age?: number}

[propName: string]: any 表示任意类型的属性
let c:{name string, [propName: string]: any}

设置函数结构的类型声明:
语法:(形参:类型, 形参:类型…) => 返回值

数组

数组类型声明
类型[]
Array<类型>

元组

元组就是固定长度的数组
语法:[类型,类型,类型]

枚举

enum 名称{
属性名,
属性名
}

任意类型:void

用来表示空,以函数为例,就表示没有返回值的函数

never

表示永远不会返回结果,一般用于报错throw抛异常

any

unknow:

实际上是一个类型安全的any,不能赋值给其它类型变量

联合类型

联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值
let j: 1 | 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值