一、ts与js相比较有哪些优势?
1.ts是js的超集,存在类型的脚本语言
2.继承了js的所有编程类型,js代码可在ts环境很好的运行
3.为构建大型应用而生,但小程序同样适用
4.强大的类型系统,拥有静态类型检查能力
5.新增类型注解和类型推断
6.拥有丰富的class扩展功能
7.添加了系统级设计能力,设计模式由顶层由下进行设计
二、TypeScript中的原始类型有哪些?
TypeScript的原始类型包括: boolean、number、string、void、undefined、null、symbol、bigint。
三、说说数组在TypeScript中是如何工作的?
1.第一种方式:类型 + []表示法
2.第二种方式:接口
3.第三种方式:any
四、什么是any类型,何时使用?
是什么:在 TypeScript 中,任何类型的值都可以赋值给 any , any 也可以赋值给任意类型,因此,any 类型通常也被称为 top type
何时用:
1.添加类型时,我必须编写大量代码,any 工作量较少
2. 我已经通过必要的运行时检查以防御性的方式编写了代码,以确保没有错误
3. 有些参数很难正确输入,但是 any 更容易
4. 我真的不知道参数是什么
5. 类型增加了很多复杂性,有时 any 更简单
五、什么是void,什么时候使用void类型?
void 表示变量没有类型,它充当与任何相反的类型,它在不返回值的函数中特别有用
如果变量是 void 类型,则只能将 null 或 undefined 值分配给该变量。
六、TypeScript中声明变量有哪些不同的关键字?
TypeScript 是 JavaScript 的超集,同 JavaScript 一样,声明变量可以采用下面三个关键字:
1.var
2.let
3.const
除此之外还有:
1.type
2.interface
3.enum
七、类型别名和interface区别是什么?
1.类型别名可以用于其它类型 (联合类型、元组类型、基本类型(原始值)),interface不支持
2.interface 可以多次定义 并被视为合并所有声明成员 type 不支持
3.type 能使用 in 关键字生成映射类型,但 interface 不行。
4.默认导出方式不同 interface 支持同时声明,默认导出 而type必须先声明后导出
八、谈谈你对泛型的认识
1.泛型只存在于编译期间
2.泛型在语法中的特征就是尖括号
3.泛型的核心原理:利用Object引用可以指向任意类型的对象
九、ts中class类有哪些属性?
1.修饰符
1.默认公共 public 自由访问程序里定义的变量和方法
2.私有的 private 当成员被标记为私有属性,只能在类进行使用,不能外部使用,子类也不可访问
3.受保护的 protected 和private相似,唯一不同的是,被protected修饰的属性可以在子类中访问
2.readOnly 只读
只读属性必须在声明或构造函数时被初始化
3.抽象类
1.抽象类作为其他派生类的基类使用,一般不会被实例化。与接口不同的是抽象类中可以包括具体实现细节;
2.abstract关键字用于定义抽象类以及在抽象类内部定义抽象方法
4.接口继承类
可以把类当成接口使用,因为类可以创建出类型