簡體   English   中英

打字稿選擇多個鍵

[英]Typescript Pick multiple keys

interface A{
  a:{
    name: string
  }
  b:{
    age: number
  }
}

type PickMultiple = ..... //todo

const child:PickMultiple<A,['a','b']> = {
   name: 'mike',
   age: 18
}

如何提取多個密鑰? 它與Pick Child key相同

當然Pick<A, 'a'| 'b'> Pick<A, 'a'| 'b'>不能按預期工作

interface A {
  a: {
    name: string
  }
  b: {
    age: number
  }
}

type Picked<T, K extends keyof T> = T[K]

const a: Picked<A, 'a' | 'b'> = {
  name: '1',
  age: 18,
}
console.log(a)

你可能把這復雜化了。

怎么樣..

interface A{
  a:{
    name: string
  }
  b:{
    age: number
  }
}

const child: A['a' | 'b']= {
  name: 'mike',
  age: 18
}

默認情況下,您實際上可以選擇多個鍵

interface A {
  a: {
    name: string;
  };
  b: {
    age: number;
  };
}

type Picked = Pick<A, 'a' | 'b'>;

查看完整文檔: https : //www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys

它已經支持多鍵

interface Todo {
  title: string;
  description: string;
  completed: boolean;
}
 
type TodoPreview = Pick<Todo, "title" | "completed">;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM