繁体   English   中英

如何在 TypeScript 中定义新类型

[英]How to define a new type in TypeScript

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

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';
}

您可以将其定义为:

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

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

您还可以在与接口相同的文件中定义新类型,例如:

export interface IWeekDay {
    day: dayType;
}

export type dayType =
| "Sun"
| "Mon"
| "Tue"
| "Wed"
| "Thu"
| "Fri"
| "Sat";

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM