在打字稿中明确分配任何类型

Explicitly assign any type in typescript

目前我们正在将我们的代码库迁移到打字稿,我们有很多地方可以使用任何类型。所以我试图强制执行显式设置变量。

这是示例片段。

const a: string = 'h';
const b: any = 4;

const message = a || b; 
// Here I would like to get warning that I am assigning any to the message,
// so I would have to write const message: any = a || b;

function say(x: string) {
    console.log(x);
} 

say(message);

我知道 tslint 规则 typedef(它要求对所有变量进行 typedef,而不仅仅是在任何情况下),还有 no-unsafe-any(在这种情况下不起作用)。

如果您尝试向任何类型分配任何类型,是否有一种方法可以要求显式定义任何类型?

理想情况下,您应该避免 anyany 根据定义可分配给任何事物和任何事物。就是不安全,还有传播的不幸习性。

您可以使用更安全的 unknown 类型。这与 any 相似,因为您可以为其分配任何内容,并且表示您没有明确定义类型的数据。与 any 不同,但是如果没有类型断言或类型保护,您将无法对它做任何事情。

其他启用 tslint no-any 以阻止所有人使用 any 并注意预定义功能的功能,例如 JSON.parse 可能仍会潜入 any偶尔。