键入检查TypeScript代码的字符串

时间:2017-04-25 15:39:20

标签: typescript

我的情况:

  • 我有一个包含API响应类型信息的库。 (例如:获取用户对象返回带有{ id: number, name: string })的对象。
  • 我想验证我是否正确编写了我的类型,并在API发生变化时发现任何问题。

到目前为止我做了什么:

我有一个生成一些TypeScript代码的程序,基本上是从api中提取数据,然后看看TypeScript编译器是否同意它与接口匹配。

最终结果如下:

import { User } from './user';

function verify<T>(data: T) {}

verify<User>({ id: 123, name: 'Joe' });
verify<User>({ id: 123, name: 17 }); // <-- obviously, this should give an error

生成此代码已全部完成,但我现在需要让编译器键入检查它。我已经在typescript编译器API中挖掘了一段时间并且一直卡住,因为似乎做我需要的所有函数都采用文件名(即:磁盘上的路径)而不是一串代码。我理解,由于对其他文件的引用,需要有一个与代码相关的路径,但我找不到任何方法来传递它。

我想避免将这些文件写入磁盘,因为

a)看起来有点傻,因为它只是从磁盘读取然后是 b)它可能在源文件中变得非常混乱,或者我必须将它放在一个单独的文件夹中,然后重写所有的import语句。

TL;我的问题的DR是:

有没有办法对TypeScript代码进行类型检查?

1 个答案:

答案 0 :(得分:1)

两种解决方案

不必将js写入磁盘只是为了运行ts

  

我想避免将这些文件写入磁盘,因为

您可以使用ts-nodehttps://github.com/TypeStrong/ts-node

检查一串js

JS的字符串很容易检查。只需使用编译器API中的ts.transpile即可。那说...... 你不想只检查一串js 。您想要检查一组文件。因此建议只使用ts节点。