Typescript 如何处理这个盲点?

Typescript 如何处理这个盲点?,typescript,Typescript,我在玩typescript,不明白为什么typescript在这种特殊情况下不执行类型检查'this.a.method()'应该会出现错误,但一切都可以正常传输。我想让typescript告诉我,a.method()需要string值作为参数。我错过了什么 class A { method(value: string){ console.log(value); } } class B { constructor(private a){} call(){ this.

我在玩typescript,不明白为什么typescript在这种特殊情况下不执行类型检查<代码>'this.a.method()'应该会出现错误,但一切都可以正常传输。我想让typescript告诉我,
a.method()
需要
string
值作为参数。我错过了什么

class A {
  method(value: string){
    console.log(value);
  }
}
class B {
  constructor(private a){}
  call(){
    this.a.method()
  }
}
const a = new A();
const b = new B(a);
b.call();

通过为
private a指定类型在B的构造函数中。
它应该是
constructor(私有a:a){}


显然,当您需要将字符串作为参数传递时,
this.a.method()
将出现编译错误:
this.a.method(“foo”)
通过指定
私有a的类型在B的构造函数中。
它应该是
constructor(私有a:a){}


显然,当您需要将字符串作为参数传递时,
this.a.method()
处会出现编译错误:
this.a.method(“foo”)
如果您没有指定变量或属性的类型,则假定它的类型为
any
,而
any
实际上意味着
不要在这里进行类型检查
。它不同于类型
对象
。如果您希望typescript执行类型检查,请为您的属性
a
a类型
构造函数(私有a:SomeType){}
如果您没有指定变量或属性的类型,则假定它的类型为
any
,而
any
实际上意味着
不要在此处执行类型检查。它不同于类型
对象
。如果你想让typescript做类型检查,给你的属性
a
a类型
构造函数(私有的a:SomeType){}

你能描述一下在这种情况下会发生什么吗?你可以在tsconfig.json中设置
“noImplicitAny”:true,
,这样像这样的错误就不会悄无声息地过去。@Saravana,正是我需要的,谢谢你!你能描述一下在这种情况下会发生什么吗?你可以在tsconfig.json中设置
“noImplicitAny”:true,
,这样类似的错误就不会悄无声息地通过。@Saravana,正是我需要的,谢谢!耶!它起作用了!谢谢你,好先生!您的答案将在7分钟内被接受!一个简单的问题。。。当我做同样的事情时,为什么会像预期的那样工作呢。我的意思是,我做了
constructor(private a){}
,一切都正常。如果没有指定类型,它将被视为
any
,并对编译器说“不要给我错误”。您可以通过在
tsconfig.json
中设置
“noImplicitAny”:true
来进行实验,以检测所有这些情况。耶!它起作用了!谢谢你,好先生!您的答案将在7分钟内被接受!一个简单的问题。。。当我做同样的事情时,为什么会像预期的那样工作呢。我的意思是,我做了
constructor(private a){}
,一切都正常。如果没有指定类型,它将被视为
any
,并对编译器说“不要给我错误”。您可以通过在
tsconfig.json
中设置
“noImplicitAny”:true
来进行实验,以检测所有这些情况。
class A {
  method(value: string){
    console.log(value);
  }
}
class B {
  constructor(private a: A){}
  call(){
    this.a.method()
  }
}
const a = new A();
const b = new B(a);
b.call();