下面的类型定义是无法实现的,但是在定义它时,编译器没有警告我。
// No type error
type impossible = 0 & string[] & 'anything'
Run Code Online (Sandbox Code Playgroud)
值不能是数字,string []和字符串文字。
是否有一种语言或类型系统支持定义只能通过特定功能实例化的类型.
示例可以NonZeroInteger是绑定到函数的类型CreateNonZeroInteger.任何外部代码都可以访问此类型的类型,接收和返回值.但至关重要的是,只能通过调用函数来创建该类型的值CreateNonZeroInteger
NonZeroInteger应该名义上打字.具有相同结构的另一种类型的值不应与此类型相当或可浇铸.