Har*_*rns 10 typescript typescript2.0
我使用TypeScript版本2.3.4.我想编写一个接受必须具有指定字段的对象的函数.但是此对象不应包含任何其他字段.我怎样才能做到这一点?
现在这只有在我定义对象内联时才有效.但是,如果我使用另一个带有额外字段的对象 - 编译器将允许它.什么是完全错误的.
例:
function foo(arg: { a: string }) { // there is tons of fields actually
// ...
}
foo ({a: "qwerty"}); // No Error - ok
foo ({a: "qwerty", b: 123}); // Error - ok
let bar = {
a: "qwerty",
b: 123
};
foo (bar); // No Error - NOT OK !!!
Run Code Online (Sandbox Code Playgroud)
可以使用接口,类,类型声明来编写相同的代码 - 这是同样的问题.
现在我必须手动从对象中提取字段,以确保没有额外的字段.但是我无法在整个代码中传播〜1000个函数(我真的需要这个) - 它太乱了.我创建API包装器,我需要确保没有传递给服务器的额外或错误的字段.
| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |