• TypeScrippt知识


    目录

    一、JavaScript是什么

    二、TypeScript是什么

    三、typescript使用

    1、后缀名为 .ts

    2、安装

    3、编译

    四、typescript基础语法

    1、数据类型

    2、任意值

    3、类型推论

    4、数组类型

    5、函数类型

    6、参数个数

    7、interface 接口名 指定属性和属性的类型

    8、声明函数

    9、枚举

    11、泛型约束

    12、泛型类

    13、类


    一、JavaScript是什么

    1. 是浏览器脚本编程语言,可以运行在浏览器端
    2. 组成:BOM,DOM,Ecmascript
    3. Ecmascript是浏览器脚本语言的标准,ES6是标准的版本

    二、TypeScript是什么

    是JavaScript的超集,提供了类型系统和对ES6的支持,代码开源github 可以在编译阶段就发现大部分错误,比在运行时候出错好 scss -> css typescript -> JavaScript

    类型检测

    数据类型:决定能做什么操作、存储单元的大小 number string boolean

    1. 在运行前知道相应类型,才能进行操作
    2. let num:number = true

    类型检测:编译时实现 typescript -> 编译 -> JavaScript ->运行

    三、typescript使用

    1、后缀名为 .ts

    let num:number = 100
    

    2、安装

    npm install -g typescript
    

    3、编译

    tsc 文件名.ts
    

    四、typescript基础语法

    1、数据类型

    原始数据类型包括: 布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol 和 ES10 中的新类型BigInt。

    ts中使用原始类型定义变量

    1. let 变量名:数据类型
    2. let count:number = 100
    3. let name:string = '张三'
    4. let isDone:boolean = false
    5. let u: undefined
    6. let n: null

    2、任意值

    任意值(Any)用来表示允许赋值为任意类型

    let a:any = 100   ->  var a = 100
    

    变量如果在声明的时候,未指定其类型,那么它会被识别为任意值类型:

    1. let b //:any
    2. b = 'hello'
    3. b = 100 //100将hello替换掉

    3、类型推论

    会在没有明确的指定类型的时候推测出一个类型,这就是类型推论。

    联合类型

    表示取值可以为多种类型中的一种

    1. let age:string|number =23
    2. age = true //错误

    4、数组类型

    let 数组名:类型[]

    1. let arr:number[1,2,3]
    2. let brr:number[1,2,'3'] //数组类型是number,不能是'3'
    3. let crr:Array = [1,2,3]

    5、函数类型

    1. //返回值也是number类型
    2. function sum(x:number,y:number):number{
    3. return x + y
    4. }
    5. sum(10,20)

    无返回值函数 用void表示没有任何返回值的函数

    1. function sum(x:number):void{
    2. console.log(x)
    3. }
    4. sum(10)

    6、参数个数

    少于或多余参数个数是不被允许的

    可选参数

    可选参写在后面,且可选参可传可不传

    1. //可选参写在后面,且可选参可传可不穿
    2. function sum(x:number,y?:string):void{
    3. console.log(x,y)
    4. }
    5. sum(10,'hello')

    接口

    7、interface 接口名 指定属性和属性的类型

    作用:作为对象类型

    1. interface person{ //定义类型
    2. name:string, //定义属性
    3. age:number
    4. }
    5. let m:person={ //定义属性值
    6. name: '人类'
    7. age:20
    8. }
    9. //第二种写法
    10. import type{Ref} from 'vue'
    11. interface IPerson{ //定义类型
    12. name:string, //定义属性
    13. age:number
    14. }
    15. const info:Ref<Array<IPerson>>=ref([])

    8、声明函数

    xx.d.ts 文件中,声明文件 用于使用第三方库的时候

    declare var $:(selector:string)=>any;
    

    9、枚举

    枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。

    1. const green = 0
    2. const red = 1
    3. const yellow = 2
    4. enum Light({
    5. green, //0
    6. red, //1
    7. yellow='黄灯' //2
    8. })
    9. console.log(Light.green) //0
    10. console.log(Light.yellow) //黄灯

    10、泛型

    泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

    1. //泛型函数
    2. function sum<T,E>(x:T,y:E):T{
    3. return x
    4. }
    5. sum<number,string>(10,20)//T=number

    11、泛型约束

    1. //约束 T 是具有length属性
    2. interface ILength{
    3. length:number
    4. }
    5. function fun1<T extends ILength<number>>(num:T):void{
    6. console.log(num.length)
    7. }
    8. fun1<string>('100')

    12、泛型类

    1. class Point<T> {//表示坐标
    2. x:T
    3. y:T
    4. constructor(x:T,y:T){
    5. this.x = x
    6. this.y = y
    7. }
    8. }
    9. new Point<number>(123.98,23.45)
    10. new Point<string>('东经120度','北纬180')

    13、类

    1. //类与修饰
    2. class Student{
    3. private name:string //姓名
    4. private age:number //年龄
    5. public score:number //成绩
    6. constructor(name:string,age:number,score:number){
    7. this.name = name
    8. this.age = age
    9. this.score = score
    10. }
    11. public say(){
    12. console.log(this.name+'说话')
    13. }
    14. }
    15. let stu = new Student('jack',18,98)
    16. stu.say()
    17. stu.name='rose'
    18. stu.say()
  • 相关阅读:
    分布式节能聚类算法(Matlab代码实现)
    微信小程序编译优化解决大小超限制等相关配置
    IO作业:1. 用fgetc计算一个文件的大小2. 计算一个文件有几行;提示:计算一个文件有几个‘\n‘;
    Link with Game Glitch(spfa判负环)
    Oracle系列十九:Oracle的体系结构
    嵌入式MCU和SOC的区别?
    【从零开始的Java开发】2-9-3 油画商城静态网页案例
    机房安全管理制度
    Vue框架总结(五、Vue配置代理)
    金融权证行权
  • 原文地址:https://blog.csdn.net/weixin_51040108/article/details/127577795