首页 > 解决方案 > 打字稿对象类型不显示省略分号的错误

问题描述

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

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,
 ...

游乐场链接

标签: javascripttypescript

解决方案


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

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

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

这是一个类似问题的链接,可能对您有所帮助 -打字稿中是否需要分号?


推荐阅读