美文网首页
TS-1类型声明

TS-1类型声明

作者: RickyWu585 | 来源:发表于2023-03-08 18:19 被阅读0次
    • 描述对象类型:
    1. Object 范围太广
    2. object :Object除去基本类型之外的类型
    3. 索引签名
    4. Record
    5. Class or Constructor
    • 索引签名:
    type A = {
    [k:string] : number
    }
    
    • Record
    type Record<K extends number | string | symbol, T> = {
      [k in K] : T
    }
    
    const person: Record<string,number> = {
      name: 'frank',
      age: 12
    } 
    
    • 带this的函数类型声明
    type Person = {
      username: string
      age: number
      sayHi: FnWithThis
    }
    
    type FnWithThis = (this:Person,name) => void
    
    const sayHi:FnWithThis = function(){
      console.log(this.username)
    }
    
    const person:Person = {
      username: 'frank',
      age: 12,
      sayHi: sayHi
    }
    
    // 调用必须指定this
    person.sayHi()  // 'frank'
    or
    sayHi.call(person) // 'frank'
    
    • never:侧重于类型推导,推到不可能出现的情况,就是never
    type A = string | number | boolean
    
    let a:A 
    
    if(typeof a === 'string'){
      a.indexOf
    }else if(typeof a === "number"){
     a.toFixed
    }else if(typeof a === "boolean"){
      a.valueOf
    }else{
      a // type is never
    }
    

    相关文章

      网友评论

          本文标题:TS-1类型声明

          本文链接:https://www.haomeiwen.com/subject/lxtukdtx.html