zoukankan      html  css  js  c++  java
  • [Typescript] “Required” Mapped Type, +/- Modifiers

    For example we have interface:

    interface Person {
      name: string,
      age?: number  
    }

    'age' is an optional prop.

    // will have an error since person.age is used
    function printAge(person) {
      return `${person.name} is ${person.age}`
    }
    
    const person = {
        name: "wan'
    }
    
    printAge(person)

    Required type:

    type MyRequired<T> = {
        [P inkeyof T]-?: T[P]
    }

    '-?': remove optional modifier so it become required prop.

    function printAge(person: MyRequired<Person>) {
      return `${person.name} is ${person.age}`
    }
    
    const person: MyRequired<Person> = {
        name: "wan',
        age: 23
    }
    
    printAge(person)

    or can use built-in:

    function printAge(person: Required<Person>) {
      return `${person.name} is ${person.age}`
    }
    
    const person: Required<Person> = {
        name: "wan',
        age: 23
    }
    
    printAge(person)
  • 相关阅读:
    du
    date
    echo
    redis的多实例
    redis相关配置
    mariadb的安装与主从复制
    11.Flask-钩子函数
    Python之Linux下的virtualenv&&virtualenvwrapper
    Linux的防火墙概念
    安装ipython解释器
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13758747.html
Copyright © 2011-2022 走看看