代码之家  ›  专栏  ›  技术社区  ›  Reynicke

合并Typescript类型,其中一个是可选的

  •  0
  • Reynicke  · 技术社区  · 5 年前

    interface fooUrls {
       url1: string,
       url2: string
    }
    
    interface barUrls {
        urlA: string,
        urlB: string
    }
    
    

    现在我想合并这两个接口,但是做一组 urls 可选。我怎么做到的?我试过用 Partial<T>

    interface fooBarUrls {
        url1?: string,
        url2?: string,
        urlA: string,
        urlB: string
    }
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Alireza Ahmadi    5 年前

    你可以用 extends Partial<fooUrls> 这样地:

       interface fooUrls {
           url1: string,
           url2: string
        }
        
        interface barUrls {
            urlA: string,
            urlB: string
        }
        
        interface fooBarUrls extends Partial<fooUrls> {
            urlA: string,
            urlB: string
        }
    

    用法是:

    let f: fooBarUrls = {url1:'a', urlA:'urlA', urlB: 'urlB'}
    

    PlaygroundLink

    推荐文章