在Typescript中“?:”和“:”符号之间的区别是什么

时间:2018-01-05 07:21:09

标签: typescript2.0

在TypeScript语言的下面的接口declration中 使用“?:”和“”符号,我无法理解这两个符号之间的区别。我是打字稿的新手所以请帮助我。

interface SquareConfig {
    color?: string;
    width: number
}

2 个答案:

答案 0 :(得分:5)

interface SquareConfig {
    color?: string;
    width: number
}

表示color是可选属性。

let x: SquareConfig = {
    // allowed to omit color without getting a compilation error
    width: 10
}

答案 1 :(得分:3)

当您使用?:在接口中声明属性时,这意味着该属性是可选的。将该接口分配给变量时,不必为该属性赋值。

例如 -

export interface myClass {
    name: string,
    age?: string
}

在组件中,您必须为name属性赋值,但由于age属性是可选的,因此不需要

  values: myClass = {
    name: 'john'
    // age field is not required
  }