gpt4 book ai didi

javascript - 有属性(property)吗?是否意味着该属性在类实例上可以为 null 或未定义?

转载 作者:行者123 更新时间:2023-11-28 17:36:49 25 4
gpt4 key购买 nike

对于此 typescript 界面:

    export interface Person {
phone?: number;
name?: string;
}

这是否意味着接口(interface)的类实例上的 name 属性可以为 null 或未定义?

例如this post问一个类似的问题,表明它使参数可选。但是可选在接口(interface)上下文中意味着什么?例如,假设我有一个实现该接口(interface)的类:

class Customer implements Person {
}

我现在是否正确实现了 Person,因为 Person 接口(interface)上的所有属性都是可选的?

最佳答案

Does this mean that the name property on class instances of the interface can be null or undefined?

是的,就是这个意思。

But what does optional mean in the context of an interface?

这意味着您无需设置所有属性即可实现该接口(interface)。

这是一个例子。

interface Person{
name?: string;
age?: number;
}

var b: Person = { name: 'Bob' }; // OK
var c: Person = { name: 'Bob', age: undefined }; // OK
var d: Person = { name: null, age: 'bob' }; // Not OK, age must be a number

或者

class SomePerson implements Person{
public name = 'Bob';
}

或者

class SomeOtherPerson implements Person{

}

关于javascript - 有属性(property)吗?是否意味着该属性在类实例上可以为 null 或未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48970532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com