joken-前端工程师

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

示例代码




interface mybasic {
  one: string,
  two: string,
  three: number,
  four: string
}

console.log("myts-demo")

// 排除参数属性
interface my1 extends Omit<mybasic, 'one'> { }


type mytype = keyof my1;


type mytype2 = my1;

// type 继承interface
type mytype3 = mytype & { six: string }
// 提取必要参数属性
interface my2 extends Pick<mybasic, 'one'> { }

let my2Demo: my2 = {
  one: "slkdfslkfjskfdj"
}
console.log(my2Demo, "my2Demo") //{one: 'slkdfslkfjskfdj'} 'my2Demo

// Partial就是所有属性类型非必须
interface my3 extends Partial<mybasic> { }

let my3Demo: my3 = {
  two: "slfkjsldfjsljf"
}

console.log(my3Demo, "my3Demo") //{two: 'slfkjsldfjsljf'} 'my3Demo

// Required 就是所有的参数都需要
interface my4 extends Required<mybasic>{}

type my5=my4 & {
  data?:Array<string> //数组声明方式
}

let my5Demo:my5={
  one:"slfdjslkjd",
  two:"sdjfsdls",
  three:234234,
  four:"sdlfjsldsfkjfd"
}

//已某些key为key,第二个参数是类型
type my6=Record<'one'|'two',string>

let my6Demo:my6={
  one:"sdlfsjldfksj",
  two:"slfjslfjsklf"
}

console.log(my6Demo,"my6Demo")
// {
//   "one": "sdlfsjldfksj",
//   "two": "slfjslfjsklf"
// }

posted on 2024-06-12 17:24  joken1310  阅读(2)  评论(0编辑  收藏  举报