目标
我想编写一个单元测试,以便在运行时验证JavaScript对象是否符合TypeScript类型。我正在寻找一种方法来做到这一点,让我可以描述类型一次,然后,然后它为TypeScript编译时检查和JavaScript运行时检查。解决方案必须允许嵌套类结构。
代码
因为一个代码示例值1000字.看“??”问题的根源是:
目标单元测试
it('object literal and TypeScript class should be compatible, () => {
??? psudo-code on line below ???
const isCompatible = (myLiteral ~has matching properties with~ MyClass)
expect(isCompatible).toBeTrue();
});JavaScript对象文本
var myLiteral = {
entities: {
users: {
'1': { id: 1 },
'2': { id: 2 }
}
}
}类在TypeScript中定义
class MyClass {
entities: Entities;
}
class Entities {
users: { [key: string]: User };
}
class User {
id: number;
}背景
我正在使用正火器来规范一个对象。normalize方法的输出不是强类型的,因此需要使用as关键字将输出返回到强类型。这是一个潜在的点,将来的错误会在不知不觉中引入到代码基中。
我想编写单元测试来验证正常化的输出是否符合我在TypeScript中使用的已经定义的类型。
当前思想
TypeScript接口和类型在运行时不存在.但是,类可以,类型可以从类派生。我希望有办法利用这一事实来实现我的目标。或者还有另一种编码方式。但是,到目前为止,我一直找不到一个。或者说,我所做的这一切在某种程度上是错误的,或者我遗漏了一些显而易见的东西。对任何一种欢迎的反馈。
发布于 2019-05-09 17:05:06
项目打字稿Json模式从TS类生成JSON。这些可以在运行时用来验证JS对象的文字。
我使用这个库来验证我的API的输入并生成正常的响应(例如,输入MyClass对象缺少属性MyClass)。
https://stackoverflow.com/questions/56063022
复制相似问题