前言
🫥Typescript是什么?我们往往直接会答出来,是JS的超集合,经历了多次失败的Typescript的学习,我认为,应该重新审视一下Typescript,我认为应该单独的把Typescript看成一门语言来学习,如果一直陷入JS的世界里面很多内容我们会难以精准把控。
一.原始数据类型
🥱如果你熟悉Java,你会知道Java有八大基本数据类型,当然Typescript中也有8种原始基本类型,他们分别是
接下来我们一一来解释不同数据类型的使用方法。
null
:表示的是有值但是是一个空值,快递盒子里面装的是礼物,但是礼物是一个小的空礼物盒。string
:就是我们常见的JavaScript中的字符串,等价于JS中的字符串。number
:等价于JavaScript中的number类型。boolean
:等价于JavaScript中的布尔类型。undefined
:表示的是没有值,仅仅有一个空的快递盒子。object
:非常通用的类型,它可以表示任何对象,包括普通对象、数组、函数等等。但需要注意的是,不包括原始类型(如 number、string、boolean、null、undefined)
js
let obj: object;
obj = {}; // 可以赋值为一个空对象
obj = { name: 'John', age: 25 }; // 可以赋值为一个具有 name 和 age 属性的对象
obj = [1, 2, 3]; // 可以赋值为一个数组
obj = () => { console.log('Hello, World!'); }; // 可以赋值为一个函数
// 以下是一些不合法的赋值
obj = 42; // 不可以赋值为一个数字
obj = 'hello'; // 不可以赋值为一个字符串
obj = true; // 不可以赋值为一个布尔值
obj = null; // 不可以赋值为 null
obj = undefined; // 不可以赋值为 undefined
symbol
:等价于JavaScript中的symbol
用法如下
js
const sys:symbol = Symbol()
const sys2:symbol = Symbol("description")
console.log(sys === sys2) // 每个symbol都是唯一的
bigInt
:用来存储比number
类型更大的数据,使用方法如下
js
let bigIntNum: bigint;
bigIntNum = BigInt(123456789); // 使用 BigInt() 函数将数字转换为 bigint
bigIntNum = 987654321n; // 使用字面量语法直接赋值 bigint
二.其他常用类型
🫥数组类型
:数组的使用在Typescript中使用方法和JS中一样,它可以使用两种方式进行类型标注。
js
let array:Array<string> = ['a','b','c'] // 使用泛型的方式
let array:string[] = ['a','b','c'] // 常用方式
🥱元组类型
:在Python中有元组的类型这个类型在JS目前还没有,但是在Typescript中也有元组的概念,我们可以简单的理解为定长的只读数组,并且允许存储不同数据类型。
js
let tupleData:[string,boolean,number] = ['a',true,2]
元组除了这种使用方式还有具名元组
js
let nameTuple:[name:string,age:number] = ['a',12]
三.认识interface和type
😎interface
被翻译为接口,在Java中interface
是用来定义类的行为和规范的,在Typescript中interface
可以用来定义类的行为和规范还可以用来规定对象的结构,简单理解,无论是类还是对象都要符合接口的定义,如果不符合对应规范就会报错。
js
interface Animal{
name?:string // 可选
readonly age:number // 只读
printInformation():void
}
// 定义了一个类
class Dog implements Animal{
name:string
age:number
constructor(name:string,age:number){
this.name = name
this.age = age
}
printInformation(){
console.log(this.name+this.age)
}
}
// 定义了一个对象
const cat:Animal = {
name:"huahua",
age:12,
printInformation:():void=>{
console.log("cute")
}
}
🫥type
被称为类型别名,使用非常的简单,基本用法如下:
js
type unionType = 1|2|3|4|5|6|7|8|9
type exampleType = unionType
let data:exampleType = 2
四.特殊标识void
👹可能很多人第一次见到这个修饰符应该是在Java中,在Java中void
表示的是这个方法没有返回值,是的在Typescript中作用也是这样的,主要表示的是方法没有返回值。
js
public class Example {
public static void sayHello() {
System.out.println("Hello!");
}
public static void main(String[] args) {
sayHello(); // 输出: "Hello!"
}
}
在TS中它的用法是这样的。
js
const cat:Animal = {
name:"huahua",
age:12,
printInformation:():void=>{
console.log("cute")
}
}
五.object、Object 与 { }
🫥一眼看下去是不是不知道用哪个?首先给出答案,仅仅只使用object
,Object
是顶级对象,{}的用法和Object
差不多,并且除了这些尽量避免使用一切类型的包装类型~