在下面的代码中,TS将y的类型推断为string,而它是undefined.有没有可能在不为y显式定义string|undefined类型的情况下修复它?

const x: string[] = []
const y = x[0]

推荐答案

在tsconfig.json中设置"noUncheckedIndexedAccess": true:

"打开noUncheckedIndexedAccess将向类型中任何未声明的字段添加undefined":https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess

// with noUncheckedIndexedAccess=true

const x: string[] = [];

const y = x[0];

y;  // const y: string | undefined

Link to playground

Typescript相关问答推荐

在Switch陈述中输入保护类

根据另一个成员推断类成员的类型

ReturnType此索引方法与点表示法之间的差异

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

使Typescribe强制所有对象具有相同的 struct ,从两个选项

rxjs forkJoin在错误后不会停止后续请求

<;T扩展布尔值>;

诡异的文字类型--S为物语的关键

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

Angular material 无法显示通过API获取的数据

判断映射类型内的键值的条件类型

使用ngfor循环时,数据未绑定到表

使用或属性编写无限嵌套的接口

为什么在泛型方法中解析此promise 时会出现类型错误?

为什么`map()`返回类型不能维护与输入相同数量的值?

Select 类型的子项

如何在TypeScript中描述和实现包含特定属性的函数?

TypeScript:方法获胜';t接受较窄类型作为参数

在Typescript 无法正常工作的 Three.js 中更新动画中的 GLSL 统一变量

是否可以从 TypeScript 的类型推断中排除this?