【TS】介绍

typeScript

  • 编译tsc 文件名
  • 监视编译加-w
  • tsc会全部编译,但前提需要创建tsconfig.json文件

数据类型的限制

类型
numberlet n: number
string
boolean
字面量let s: boolean
any(不推荐)
unknown(比any安全)
void
never(一般用于报错,很少用)
object(不常用,常用{}对属性进行限制)
{ }
function(不常用,常用()对参数进行限制)
( )
arraylet n: string[] 或者 let n: Array<string>
tuple( 限制了类型和数量 )let n: [string, number]
enumenum Gender{Male=0,Female=1}
  • 字面量声明(联合声明):提供选择的范围

    let n: 10 | 11;
    let s: boolean | string
    
  • 声明和赋值同时进行时,可省略

    let c = 1
    
  • 所以ts的类型限制多用于函数

    • ()外是对返回值的类型限制
    function(a: number, b: string): number {}
    
  • any和unknow的区别

    • any的值可以随意给其他变量赋值,unknown不能
  • 类型断言

    • 一般用于unknow,指明该类型
    let e:unknow;
    let s:string;
    e = 'hello'
    s = e as string //写法一
    s = <string> e //写法二
    
  • 对象限制

    • 对象内的参数需要一一对应

    • 加?表示可有可无

    • 如果有多个属性

      let c:{
      	name:string,
      	[xx:string]:any //只要是string类型的属性都可有可无
      }
      
    let b: {
    	name:string,
    	age?:number // 加?表示可有可无
    }
    
  • 函数限制

    let d:(a: number, b:number)=> number;
    
  • 枚举

    有多个值需要选择

    enum Gender{
    	Male=0,
    	Female=1
    }
    let i:{
    	name:string
    	gender:Gender
    }
    i={
    	name:'bob',
    	gender:Gender.Male //更语义化
    }
    
  • 别名type

    • 当使用聚合声明时,值太多了可以使用type声明一个别名

      type a=1|2|3|4
      type a=number|string
      

tsconfig.json

  • **代表人一文件夹,`*``代表任一文件
{
  //编译src下的所有文件夹的所有文件
	"include":[ 
		"./src/**/*" 
	]//不编译src下的hello文件夹的所有文件
	"exclude":[ 
		"./src/hello/*" 
	]//继承其他配置文件
	"extends":"./config/base"//只编译以下文件
	"files":[]
}

  • 继承后,如果使用constructor,必须super(),并且参数也要保持一直

  • 抽象类:class 前加 abstract ,抽象类只能被继承,不能被实例化

  • 接口:和type有点像,可以去限制类的结构,使用implements去实现接口

    • type不能重名覆盖,接口可以
    • 接口中的属性不能有实际的值
    interface 接口名{
    	name:string;
    	age:number;
    }
    
  • 私有:private

    private name:string;
    
  • 泛型(不确定的类型):

    • 在定义类或函数时,类型不明确
    class A<T>{
    	name:T;
    	constructor(name:T){
    	}
    }
    
    function fn<泛型名>(a:泛型名):T{ return a }
    
    • 如何指定类型

      fn(10) //简写,自动推断
      
      fn<string>('hello') //推荐写法
      
    • 可以指定多个

      function fn<T,K>(a:T,b:K):T{ return a }
      
    • 还可以继承interface去限制参数或返回值(对象类型)

      interface Inter{
      	length:number
      }
      function fn<T extends Inter>(a:T):T{ return a }
      // a必须有number类型的length属性
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值