Возможно неопределенные ссылки на массивы в строгом режиме Typescript - PullRequest
0 голосов
/ 05 февраля 2019

На работе мы используем Typescript со строгой проверкой нуля, чтобы ловить исключения, вызванные нулевыми / неопределенными переменными.Однако недавно мы столкнулись с ошибкой, которую Typescript, похоже, упускает.Код ниже демонстрирует это:

interface IMyObj {
    foo: string;
}
const myArr: IMyObj[] = [];
const myObjProp = myArr[0].foo;
console.log(myObjProp);

Typescript скомпилирует это без жалоб, но при запуске он, очевидно, выдаст ошибку типа:

Uncaught TypeError: Cannot read property 'foo' of undefined

Конечно, мы можем определить все типы массивовв кодовой базе как (IMyObj | undefined)[] вместо IMyObj[], но это также подвержено ошибкам, поскольку было бы легко пропустить его.

Есть ли способ заставить Typescript обнаружить потенциально неопределенную ссылку, такую ​​какmyArr[0]

1 Ответ

0 голосов
/ 06 февраля 2019

Есть ли способ заставить Typescript обнаружить потенциально неопределенную ссылку, такую ​​как myArr [0]?

Нет, и очень маловероятно, что она когда-либо будет реализована в TypeScript, см.обсуждение этого предложения .См. Также эти выпуски .

...