我有一个父对象,它的类型不能更改为“ any”(我在单元测试中使用this
对象),并且我定义了父对象的属性,但是无论如何我做到了,总是用“ any”松散地键入。投射似乎也不会执行任何操作,直到运行时。有没有一种方法可以在运行时之前强烈键入我的属性,以便在分配虚假属性时让Typescript引发错误?
interface AType {
bar: number
bas: string
}
let something: any = {};
// Make this property respect 'AType' typing.
something.anythingElse = <AType>{
bar: 1,
bas: 'one',
};
// Doesn't throw an Error but it should
something.anythingElse.bogusAssignment = '1234';
答案 0 :(得分:1)
在上面的评论之后,除了常规的类型断言外,您可能会考虑使用类型保护器:
makeFork("/bin/ls")
在这里,假的分配将不起作用。
编辑:对于下面的评论,这是您可以采用的另一种方法:typescript playground
答案 1 :(得分:0)
是什么使您无法给父母更强的类型?
something: Partial<{anythingElse: AType}>