Typescript 如何处理这个盲点?
我在玩typescript,不明白为什么typescript在这种特殊情况下不执行类型检查<代码>'this.a.method()'应该会出现错误,但一切都可以正常传输。我想让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.
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();