【问题标题】:How to define a new type in TypeScript如何在 TypeScript 中定义新类型
【发布时间】:2020-01-23 13:20:36
【问题描述】:

假设我有一个具有以下类型的变量:

let weekDay: 'Sun' | 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat';

而且在我项目的不同地方我都在使用这种类型,所以每次我写的时候:

function setDay(day: 'Sun' | 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat') { ... }
function getDay(): 'Sun' | 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat' { ... }

这个新类型怎么定义一次,就不用每次都写了。我尝试定义一个interface,但它会创建一个对象类型,该类型作为每个属性之一,但这不是我想要的

interface iWeekDay {
  day: 'Sun' | 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat';
}

【问题讨论】:

标签: typescript types


【解决方案1】:

你可以这样定义:

type DayOfWeek = 'Sun' | 'Mon' | 'Tue' | 'Wed' | 'Thu' | 'Fri' | 'Sat';

function setDay(day: DayOfWeek) { ... }

【讨论】:

    【解决方案2】:

    您还可以在与您的界面相同的文件中定义一个新类型,例如:

    export interface IWeekDay {
        day: dayType;
    }
    
    export type dayType =
    | "Sun"
    | "Mon"
    | "Tue"
    | "Wed"
    | "Thu"
    | "Fri"
    | "Sat";
    

    通过这样做,您导出了一个IWeekDay 接口,该接口具有一个dayType 类型的参数。

    【讨论】:

      猜你喜欢
      • 2018-02-23
      • 2022-12-25
      • 2022-12-25
      • 2020-12-15
      • 2016-01-18
      • 2020-08-05
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      相关资源
      最近更新 更多