Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript:防止意外使用对象[索引]_Typescript - Fatal编程技术网

Typescript:防止意外使用对象[索引]

Typescript:防止意外使用对象[索引],typescript,Typescript,我很惊讶地注意到typescript可以使用以下代码: interface IFoo { bar: string; } const foo: IFoo = {bar: 'bar'}; console.log( foo['anything'] // I'd like typescript to prevent this ); 是否有方法防止在不期望的情况下使用[]访问器 是否有方法防止在不期望的情况下使用[]访问器 如果希望抛出错误,可以启用,这将导致以下错误: 元素隐式地具有any

我很惊讶地注意到typescript可以使用以下代码:

interface IFoo {
  bar: string;
}

const foo: IFoo = {bar: 'bar'};

console.log(
  foo['anything'] // I'd like typescript to prevent this
);
是否有方法防止在不期望的情况下使用[]访问器

是否有方法防止在不期望的情况下使用[]访问器

如果希望抛出错误,可以启用,这将导致以下错误:

元素隐式地具有
any
类型,因为类型
IFoo
没有索引签名


好吧,这就是为什么我感到惊讶。我通常默认激活
noImplicitAny
。不幸的是,我还没有准备好在我当前的项目中激活它。这里有一个typescript问题,它提供了关于这个设计选择的见解:@TomEsterez-太好了,谢谢你的链接。我想知道为什么它也是这样实现的。