如何强制执行关于“总是设置类型”的错误之类的“学究式”错误?

时间:2019-04-07 10:35:04

标签: reactjs typescript

我来自Java之类的面向对象语言,并且我试图将.jsx模块转换为.tsx以利用类型。

我不得不说这非常简单明了,但我不喜欢以下内容:

let methodName = 'GET';

这是我的方法中的变量声明。 编译器很好,我没有分配类型,但是来自Java我不喜欢这种类型!我想得到一个错误“变量methodName的类型未定义”,所以我被迫以这种方式编写它:

let methodName:string = 'GET';

我的方法也是如此,对于打字稿,以下内容绝对可以:

handleButtonClick = evt => {

}

但这根本不好,我应该被迫做这样的事情:

handleButtonClick = (evt:React.MouseEvent):void => {

}

是否可以通过设置某些选项来实现?

1 个答案:

答案 0 :(得分:2)

在文档的compiler options部分,您将找到--noImplicitAny选项,该选项告诉TypeScript不允许隐式any

不过请注意,您的第一个示例并没有隐式地使mehodName成为any

let methodName = 'GET';

TypeScript 从分配的内容中推断出methodName的类型,尝试分配字符串以外的内容将是错误的。 type inference文档对此进行了详细介绍。很多时候,您不需要显式地键入事物,因为可以推断出类型。该代码仍然是类型安全的。

这将隐式使methodName类型为any

export let methodName;

使用--noImplicitAny,这是一个错误。没有它,隐式类型any将用于导出的变量。