在不添加链接的情况下,我想不允许在没有任何类型批注或初始化式的情况下使用let x;.如果它有一个初始值设定项,那很好,类型脚本将从初始值设定项中推断类型.但没有一套,x的类型是any-即使有noImplicitAny套,这让我很惊讶.

就这样.

// This is fine, type is inferred from initializer:
let a = 42;

// Also fine, type is provided explicitly:
let b: string;

// Should be an error:
let x;
//  ^? let x: any

Here's a playground link和启用了noImplicitAny的代码(以及strict,尽管我不认为这与此相关),这表明它不执行此判断.x上没有错误.我可以给它赋任何我想要的值,它的类型是any.

我有没有遗漏打字脚本配置选项或选项组合?


注:我意识到,在没有分配到某个值之前,将任何值设置为use x都是错误的.问题是x拥有类型any,让它处于开放状态,可以为其分配任何内容.

推荐答案

这很难证明是否定的,但据我所知,通过查看类型脚本选项,不可能让类型脚本(与Lintert相反)在let个声明上强制使用初始化器或类型.

Typescript相关问答推荐

"@ clerker/nextjs/server没有名为clerkMiddleware的导入成员'

如何在ts中使用函数重载推断参数类型

对于使用另一个对象键和值类型的对象使用TS Generics

为什么typescript不能推断类的方法返回类型为泛型''

如何推断计算逻辑的类型

使用`renderToPipeableStream`时如何正确恢复服务器端Apollo缓存?

使某些(嵌套)属性成为可选属性

如何在TypeScrip中从字符串联合类型中省略%1值

TypeScrip省略了类型参数,仅当传递另一个前面的类型参数时才采用默认类型

MatTool提示在角垫工作台中不起作用

为什么ESLint会抱怨函数调用返回的隐式`any`?

为什么在leetcode问题的测试用例中,即使我确实得到了比预期更好的解决方案,这段代码也失败了?

TypeScrip泛型类未提供预期的类型错误

从子类集合实例化类,同时保持对Typescript中静态成员的访问

在TypeScript中扩展重载方法时出现问题

递归类型别名的Typescript 使用

为什么受歧视的unions 在一种情况下运作良好,但在另一种非常类似的情况下却不起作用?

确保财产存在

两个接口的TypeScript并集,其中一个是可选的

在Nestjs中,向模块提供抽象类无法正常工作