TypeScript的主要特点是什么?
-
跨平台:TypeScript 编译器可以安装在任何操作系统上,包括 Windows、macOS 和 Linux。
-
ES6 特性:TypeScript 包含计划中的 ECMAScript 2015 (ES6) 的大部分特性,例如箭头函数。
-
面向对象的语言:TypeScript 提供所有标准的 OOP 功能,如类、接口和模块。
-
静态类型检查:TypeScript 使用静态类型并帮助在编译时进行类型检查。因此,你可以在编写代码时发现编译时错误,而无需运行脚本。
-
可选的静态类型:如果你习惯了 JavaScript 的动态类型,TypeScript 还允许可选的静态类型。
-
DOM 操作:您可以使用 TypeScript 来操作 DOM 以添加或删除客户端网页元素。
使用 TypeScript 有什么好处?
-
TypeScript 更具表现力,这意味着它的语法混乱更少。
-
由于高级调试器专注于在编译时之前捕获逻辑错误,因此调试很容易。
-
静态类型使 TypeScript 比 JavaScript 的动态类型更易于阅读和结构化。
-
由于通用的转译,它可以跨平台使用,在客户端和服务器端项目中
TypeScript 和 JavaScript 的区别是什么?
-
TS 是一种面向对象编程语言,而 JS 是一种脚本语言(尽管 JS 是基于对象的)。
-
TS 支持可选参数, JS 则不支持该特性。
-
TS 支持静态类型,JS 不支持。
-
TS 支持接口,JS 不支持接口。
类型推论
TS中,没有明确指出类型的地方,类型推论会帮助提供类型。
接口
个人理解:声明对象的模板
interface person {
name: string,
money: number,
like: boolean,
hobby: string[],
make: () => void,
}
//实现接口
let zs: person = {
name: "张三",
money: 100,
like: true,
hobby: ["打篮球", "踢足球"],
make: () => {
},
}
}
接口通过extends来实现继承
一个接口可以被多个接口继承,同样,一个接口也可以继承多个接口,多个接口用逗号隔开
泛型
定义
泛型是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。
为什么选择使用泛型而不是any?
使用any类型会导致这个函数可以传入,返回任何类型的参数,使用泛型保证传入的类型与返回的类型是相同的。
元组
允许存储不同类型的元素的数组
枚举
将数据与数字相对应,便于拿数据
类
// js中的类
class Parent {
constructor(x) {
this.x = x;
this.sayHello = function () {
console.log("sayHello")
}
}
fn(){
console.log(this.name)
}
}
new Parent()
//ts中的类:传值必须定义类型和值
class Person {
//注意构造函数要用到的属性需要提前定义
name:string;//非静态变量 成员变量
age:number
static like:string="money"; //静态变量 类变量
readonly sex:string //只读的成员变量,实例化之后不能改
//定义变量
constructor(name:string,age:number){
this.name=name;
this.age=age;
this.sex=sex;
}
//定义方法
//类中的所有方法都默认定义在原型上的
eat(){
}
let xm =new Person("小明",18,"boy");
console.log(xm)
ts为类中的变量提前限定了类型,增加了访问修饰符