前端八股-TypeScript

类型断言方式/类型转换

  • 类型断言方式
# 1 尖括号 <string>myStr
# 2 as myStr as string
  • 类型转换函数
# 例如Number()、String()、Boolean()等
let myNum: number = Number("123");
let myStr: string = String(456);
let myBool: boolean = Boolean(1);
console.log(myNum, myStr, myBool); // 123, "456", true

# 补充:其他内置:parseInt()、parseFloat()、toString()函数

#any/unknown区别

  • 主要区别unknown 比any严格
// 1.unknown类型,打印没有声明对象会报错;而any不会报错
let bar:unknown = 222; 
console.log(bar.msg); // Error

let foo: any = 123;
console.log(foo.msg); // OK
// 2.unknown类型赋值给string类型会报错;而any赋值不会报错

#interface/type区别

# interface定义接口的关键字;
# type定义类型别名的关键字;

#ts数据类型

新增5个

  • 多元组(已知元素数量和类型的数组,元素之间可以不同,但对应位置元素类型需要相同)、any(任意类型)、enum(只能是枚举中的值)、void(没有返回值的方法)、never(从不会出现的值)

image-20230403162549138

 

类class

属性类型:

  • 实例属性:定义在构造函数内部的属性,使用绑定在this上面。只能实例去问,构造函数访问不到
  • 静态属性:static关键字声明 ----只读无法修改
  • 原型属性:定义在构造函数原型上的方法。**实例可以访问到。**构造函数可以通过prototype属性来访问
class Person(){
    name:string; //属性 前面省略了public
    construtor(n:string){
        this.name = n;//实例属性
    }
    run():void{
        log(this.name);
    }
}

#构造函数

  • constructor 构造函数会在对象创建时调用,构造函数是用于接收自定义属性值

#继承extends

继承作用: 提取类中公共部分

继承特点:

  • 继承:子类将会拥有父类所有的方法和属性
  • 新增:新增父类属性
  • 重写:重写父类方法

#super

概念:用在子类中,来表示当前父类,可以是变量/方法

特点:

  • 如果在子类中写了构造函数,就必须调用父类的构造函数-- super(name,age)

#抽象类abstract

专门用来被继承的类

特点:

  • 抽象类只是为了让其他类继承的,禁止创建为对象
  • 抽象方法只能在抽象类中

#接口

概念:接口实质就是一个规范、一个定义对接标准

特点:

  • 在接口中所有的方法都是抽象方法(专门对接)
  • 可以对接类(限制类的结构)、方法(限制返回值)、变量(限制值类型)

#ts泛型

  • 应用场景:定义函数或是类时,如果遇到类型不明确就可以使用泛型
  • 泛型写法:泛型、多个泛型、继承接口(类)泛型
// 泛型
function fn1<T>(a:T):T {
    return a;
}
// 泛型可以同时指定多个
function fn2<T,K>(a: T, b: K):T {
    console.log(b);
    return a;
}
// 泛型继承接口
interface myInter{
    length:number
}
function fn3<T extends myInter>(a:T):number {
    return a.length;
}

#命名空间/模块

模块:

  • 任何包含顶级 import 或者 export 的文件都被当成一个模块;

命名空间:

  • 命名空间使用 namespace 来定义;本质上是一个对象,原理:将相关的全局变量组织到一个对象上(类似闭包

#tsconfig.json文件

包括include/exclude-编译路径、compilerOptionstarget-被编译后的es版本、module-指定模块规范、outDir-出口)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蹦卡啦撒卡玛卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值