为什么将“ any”类型的对象设置为具有特定类型的属性不会引发TS编译错误?

时间:2019-02-15 22:44:02

标签: typescript

为什么此代码未引发任何Typescript错误(请参见TS playground):

interface ErrorData {
    code: number;
    message: string;
}

interface EnrichedError {
    description: string;
    error: ErrorData;
}

const a: any = "bla bla bla";
const b: EnrichedError = {
    description: 'this is a test',
    error: a
}

为什么可以将b.error设置为a?

1 个答案:

答案 0 :(得分:2)

因为这就是any的重点,所以它可以分配给所有类型,并且所有类型都可以分配给它。

这是您的逃生舱口,它基本上告诉TypeScript“此值可以随处可见”