【发布时间】:2019-04-21 14:25:17
【问题描述】:
考虑以下打字稿代码:
function eatString(str: string){
console.log(str);
}
const anyObject: any = {
junk: 3425234,
};
eatString(anyObject); // Compiles ok - by why?
eatString({something: "abc"}); // Doesn't compile - as expected
有没有办法通过 tsconfig 或 tslint 选项或其他方式阻止函数 eatString(str: string) 采用 any 参数?
我最初认为noImplicitAny 可能会有所帮助,但在尝试并查看文档之后,这并不是我的想法。 no-any 不适合我,因为在某些情况下我仍然希望能够使用 any。
如果这是不可能的,我是否有一些原因我想知道为什么?我已经很久没有使用 typescript/javascript 工作了,但是我已经被一些本可以阻止的问题所困扰。
【问题讨论】:
-
any的整体理念是它是一种可以无约束地表示任何 JavaScript 值的类型。 github.com/Microsoft/TypeScript/blob/master/doc/spec.md#3.1
标签: typescript tslint