类型脚本中的空集

时间:2017-04-06 11:50:32

标签: javascript typescript functional-programming

我有一个理论问题。有没有办法在TypeScript中设计一个表示空集的类型? 我尝试使用union,disjoint union,intersection等来定义一个......

1 个答案:

答案 0 :(得分:0)

是的,虽然我认为这种类型的用处很大程度上取决于你的编程风格。您可以像这样定义EmptySet

interface ISet { 
    intersection: (s: ISet) => ISet;
    union: (s: ISet) => ISet;
}

class EmptySet implements ISet { 
    intersection(s: ISet) { 
        return this;
    }

    union(s: ISet) { 
        return s;
    }
}

class NonEmptySet implements ISet { ... }

ISet是集合的通用契约,EmptySet是实现该契约的具体类型。显然,您可以使用比unionintersection设置更多的内容,这只是一个示例。