【发布时间】:2020-01-10 09:48:48
【问题描述】:
我有一个函数,它通过对它们进行字符串化来将不同的值存储到本地存储中,我想限制该函数使用 Moment 对象。语法是这样的:
public static set<TValue>(
key: LocalStorageKeyEnum,
value: TValue,
...keySuffixes: string[]
) {
localStorage.setItem(
LocalStorage.buildKey(key, keySuffixes),
JSON.stringify(value)
)
}
如果第二个参数是 Moment 对象并且我想在编写 <TValue> 时排除这种类型,那么该函数将毫无问题地工作。有没有办法使用 Typescript 来做到这一点,或者唯一的方法是对运行时进行检查?我可以使用 2 种类型,其中第二种类型将排除 Moment 类型的属性,就像这样
type Variants = {
value: TValue,
date: moment.Moment
}
type ExcludeDate = Exclude {typeof Variants, "date"}
但我想知道是否还有其他方法可以做到这一点。谢谢!我是 Typescript 的新手,如果我不是很清楚,我很抱歉。
【问题讨论】:
标签: javascript typescript types