什么是 ts
TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。
ts 的类型
ts的语法基本和 js一样,但是ts更适合大项目使用,原因就在于,他对于,类型的定义更加严格,不会出现因为类型导致项目报错的原因。
js中有的类型,ts都有,并且还有其他类型
number: 123 , 1, -33
string: “hl”, “hello”
Boolean: true, false
字面量:其本身 ===》 限制变量的值,就是该字面量的值
any: * ===〉任意类型
unknown: * ===》没有类型的any
Void: 空值 ===〉 没有值(或者undefine)
never: 没有值。 ===》不能是任何值
object:(name:“小明”) ===〉 js对象
array: [1 ,2, 3] ===》 js数组
tuple: [4, 5]。 ===〉 元素,ts新增数据类型,固定长度的数组
enum: enum{A, B} ===》 枚举,ts中新增的类型
ts的类型实例:
function greeter(person: string): string {
return "i am " + person
}
let username = "lmj"
username = "xyy"
console.log('这是greeter函数的返回值: ', greeter(username))
let a: 12;
let b = 13;
let c = 12;
// 非常严格的输出模式,一个函数,传入的两个参数,如果不加上类型,就会报错
function sum1(a:number, b: number) {
return a + b
}
a = 12
console.log(typeof(a))
// 这里的函数返回值默认是两个参数的返回值 number
console.log('这是sum1的返回值: ', sum1(a,b))
function sum2(a:number, b: number): string {
return a + b + "asd"
}
a = 12
console.log('这是sum2的返回值: ', sum2(a,b))
// 总之就是 ,定义变量的时候不需要 声明她的类型,只需要写出来,就可以了
let lovername = "xyy"
lovername = "yjh"
// 如此是可以重复赋值的,同时类型也是固定 string 的
let password: 123456
// password = 111111;
// 这样赋值就会报错,因为如此形式的赋值意思是类型的直接赋值,这里的 123456 是自定义的类型
// 当然对于想要多种不可改变的类型来说,可以使用 或 |
let test1: 123 | "lmj" | true;
test1 = 123;
test1 = "lmj"
console.log('这是 test1: ', test1);
// 使用等于符号的变量是 number bigint 或者枚举类型的
let test2 = 123 | 234;
// let test3 = "lmj" | "xyy"
// 如果希望可以有两种或者以上的类型可以使用的话,可以使用这种方式
let test3: boolean | string |number
test3 = true;
test3 = "lmj";
test3 = 123;
##### // 总结:
// 1 在ts中,有了严格的变量类型要求,并且有时候可以把他的类型当成变量值去用,并且只能使用定义的类型
// 2 定义变量的时候,不需要将类型写出来,会自己检测赋值的类型是什么
// 3 定义函数的时候,如果需要传入参数的话,那么一定要规定参数的类型,对于返回值的类型可以不写