Skip to content

noUncheckedIndexedAccess and variadic tuples #40657

Closed
@TkDodo

Description

@TkDodo

TypeScript Version: 4.1.0-dev.20200920

Search Terms:

  • noUncheckedIndexedAccess
  • Pedantic Index Signatures
  • variadic tuples

Code

type NonEmptyStringArray = [string, ...Array<string>]

const strings: NonEmptyStringArray = ['one', 'two', 'three']

strings[0].toUpperCase()
strings[99].toUpperCase()

Expected behavior:

strings[99].toUpperCase() should type error

Actual behavior:

strings[99].toUpperCase() shows no type error

Please note that if you change const strings to Array<string>, every index access correctly yields a type error.

Playground Link:

https://www.typescriptlang.org/play?noUncheckedIndexedAccess=true&ts=4.1.0-dev.20200920#code/PTACDsHsFVwYwBYFM4GskBMCS4NIB6YCCccSAzuQFBUAuAngA5IAEAcpOAKIC2jDAZVoAnAJbgA5kWHCAhvRYBeFgG1yI8RIA0LAHT7pc+gB51YyQD4AujTid1LM5vIAudp1796Q81JnylVQByTiQgnSDaAHdIcJZIhGEkMJsqJ0lyFQAGK11aGEZmYQBhWXIkAAoASjSNDJUATgbc-OhCpBKyyqqgA

Related Issues:

#39560

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFix AvailableA PR has been opened for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions