在TypeScript语言的下面的接口declration中 使用“?:”和“:”符号,我无法理解这两个符号之间的区别。我是打字稿的新手所以请帮助我。
interface SquareConfig {
color?: string;
width: number
}
答案 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
}