对于简单类型(如uri),是否可以使用flow-type来进行类型检查

时间:2018-02-06 01:26:12

标签: javascript node.js flowtype

说,我有一个带字符串的函数,并确保它是一个有效的uri:

function checkUri(input: string): Uri {

}

是否有可能以这种checkUri方法只能发出这种新类型Uri,即使我真的只想让它成为一个字符串?

我的最终目标是我想定义一堆具有Uri属性的类型,并且我想通过我的类型系统强制执行验证。

因此,从外部看,Uri类型的外观和行为类似于一个保证已经过验证的不可变字符串。

1 个答案:

答案 0 :(得分:1)

要展开我的评论(其中拼写错误opaque),here's an try flow example

// declaring in the try makes it act as if it were imported, but I'll just import here
import { checkUri, type Uri } from 'some-file';

function useUri(uri: Uri): void {}

// $ExpectError
useUri('some string')

// this one works
useUri(checkUri('some string'))