Javascript 如何知道对象的构造方式是否正确,以及如果它们';你不是吗?

Javascript 如何知道对象的构造方式是否正确,以及如果它们';你不是吗?,javascript,Javascript,例如,如果我有3个类,其中2个是第3个类的一部分,我如何知道这些类型是正确的,如果不正确怎么办: class A { constructor(someString) { this.shouldBeString = someString } } class B { constructor(someBoolean) { this.shouldBeBoolean = someBoolean } } class C { cons

例如,如果我有3个类,其中2个是第3个类的一部分,我如何知道这些类型是正确的,如果不正确怎么办:

class A {
    constructor(someString) {
        this.shouldBeString = someString
    }
}

class B {
    constructor(someBoolean) {
        this.shouldBeBoolean = someBoolean
    }
}

class C {
    constructor(classAObject, classBObject) {
        this.shouldBeClassAObj = classAObject
        this.shouldBeClassBObj = classBObject
    }
}

let a = new A("hello")
let b = new B(true)
let c = new C(a, b)

Javascript中是否有某种方法可以处理缺少静态类型的问题,从而不必编写一行又一行的验证代码?如果有,并且它失败了,您如何处理失败的构造函数?是否返回null、未定义、抛出异常?

您应该改用TypeScript。您是否询问是否可以自动验证
C
的构造函数的参数是否为
A
B
的实例?若有,否;;您需要自己验证。Ducktyping或TyepScript。构造器怎么会失败呢?所以基本上,不要担心副作用,让程序员担心发现他们做错了什么?我想这是解决这个问题的简单方法。这就是动态类型背后的基本原理。