打字稿对象类型不会显示省略分号的错误

时间:2020-05-17 16:18:13

标签: javascript typescript

我发现对象类型声明很奇怪。我期望p2是正确的,但是它可以与,一起使用,甚至我省略了分号,仍然可以。为什么如此不一致?

let p: {
    x: number,
    y: string
} = {
    x: 1,
    y: "abc",
}


let p2: {
    x: number;
    y: string
} = {
    x: 1,
    y: "abc",
}


let p3: {
    x: number
    y: string
} = {
    x: 1,
 ...

Playground Link

1 个答案:

答案 0 :(得分:1)

由于自动分号插入(ASI),JavaScript中的分号是可选的。 TypeScript也遵循ASI。 ASI并不简单,在某些情况下,省略分号将导致意外的运行时错误。但是TypeScript的类型系统进一步消除了JavaScript中的一些极端情况。

// valid
class Employee{
  name: string;
  age: number;
}

// also valid
class Employee{
  name: string
  age: number
}

这是一个类似问题的链接,可能会帮助您- Are semicolons necessary in typescript?