日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

ts之定義對象高級使用 Record

作者:不求人0 更新時間: 2023-02-28 編程語言

目錄

  • ts之定義對象高級使用 Record
    • 簡單使用
    • 復雜對象

ts之定義對象高級使用 Record

Record<key type, value type> 第一個key值類型,第二個為obj[key]數據的類型
Record<string, unknown> 任意對象

簡單使用

let termMap1 = {} as Record<string, string>;
//  定義對象 Record<string, string> 第一個string為key值,第二個為obj[key]數據的類型
termMap = {
     age:10, // 不能將類型“number”分配給類型“string”。
     num:'11'
 }
console.log('termMap1',termMap1 );

復雜對象

// Record 來限制 對象的key和value
type P = {
  [key: string]: number;
};
let p: P = { ppp: 10, ooo: 10 };
// k不是泛型  K泛型

// 01 Record 來限制 對象的key和value
type PP = Record<string, number>;
let pp: PP = {
  ppp: 10,
  ooo: 10,
};

type PP2 = Record<string, string>;
let pp2: PP2 = {
  ppp: "10", //  ppp: '10' 不能將類型“number”分配給類型“string”
  ooo: "10",
};

// 02 Record 來限制 復雜對象的key和value
interface term {
  info: number;
  checked: boolean;
}
type TermMap = Record<string, term>;
// item項目  key:string  value: { info: 10, checked: true }
let termMap: TermMap = {
  xxx: {
    info: 10,
    checked: true,
  },
};

// 03 Record 來限制 復雜對象的key和value
interface info_config {
  name: string;
}
interface term2 {
  info: info_config;
  checked: boolean;
}
let termMap2 = {} as Record<string, term2>;
// 定義對象 Record<string, string> 第一個string為key值,第二個為obj[key]數據的類型
termMap2 = {
  xxx: {
    info: {
      name: "111",
    },
    checked: true,
  },
};

// 04 Record 來限制 復雜對象的key和value
interface info_config3 {
  name: string[];
}
interface term3 {
  info: info_config3;
  checked: boolean;
}
let termMap3 = {} as Record<string, term3>;
// 定義對象 Record<string, string> 第一個string為key值,第二個為obj[key]數據的類型
termMap3 = {
  xxx: {
    info: {
      name: ["1", "2"],
    },
    checked: true,
  },
};

原文鏈接:https://blog.csdn.net/weixin_47409897/article/details/127772122

欄目分類
最近更新