如何防止在TypeScript中指定错误的类型?

如何防止在TypeScript中指定错误的类型?,typescript,type-safety,Typescript,Type Safety,我是TypeScript新手,希望摆脱潜入数据结构的错误类型。我认为TypeScript会禁止以下赋值this.myString=myArgument,因为myArgument的类型未知 class MyClass { private myString : string; constructor(myArgument) { this.myString = myArgument; } } let myInstance = new MyClass(3);

我是TypeScript新手,希望摆脱潜入数据结构的错误类型。我认为TypeScript会禁止以下赋值
this.myString=myArgument
,因为
myArgument
的类型未知

class MyClass {
    private myString : string;

    constructor(myArgument) {
        this.myString = myArgument;
    }
}

let myInstance = new MyClass(3);
console.log("my instance", myInstance);
在运行时,
myInstance.myString
将是一个非常不受欢迎的数字:(我知道我可能可以添加
myArgument:string
作为参数参数类型声明,但我认为TypeScript的优点之一是类型推断,这在这里应该很容易


如何防止数据结构中出现错误的类型?

如果要确保所有值都必须具有指定的类型,可以在
tsconfig.json

中将
noImplicitAny
设置为true。它无法推断myArgument将是什么类型。它可以是任何类型。方法是为它指定一个类型。但我正在调用
newmyclass
带有3,它应该将此调用标记为不正确。或者这是不确定的,因为我可以在构造函数中执行任何操作(停止问题)。至少不应该允许非类型化变量与类型化变量相配,反之亦然,不是吗?在您的情况下,myArgument的类型是any,因此调用是正确的。如果需要,您可以使用tsconfig.json“noImplicitAny”中的编译器选项完全禁用任何变量:同样,Typescript不做任何运行时检查,只做编译时和静态分析。在运行时,所有类型信息都会丢失,剩下的就是纯js。:)谢谢
noImplicitAny
就是我要找的!你能不能提供一个被接受的答案?