如何强制一个“迂腐”的错误总是设置类型?

问题描述 投票:0回答:1

我来自面向对象的语言,比如Java,我试图将.jsx模块转换为.tsx来使用类型。

我不得不说这很容易和直截了当但我不喜欢以下内容:

let methodName = 'GET';

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

let methodName:string = 'GET';

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

handleButtonClick = evt => {

}

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

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

}

是否可以通过设置一些选项来实现这一目标?

reactjs typescript
1个回答
2
投票

在文档的compiler options部分,你会发现--noImplicitAny选项告诉TypeScript不允许隐式any

但请注意,您的第一个示例不会使mehodName隐含any

let methodName = 'GET';

TypeScript从您分配的内容中推断出methodName的类型,并尝试分配字符串以外的其他内容将是一个错误。 type inference文档详细介绍了这一点。很多时候,您不需要显式输入内容,因为可以推断出类型。代码仍然是类型安全的。

这将隐含地使methodName类型为any

export let methodName;

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

© www.soinside.com 2019 - 2024. All rights reserved.