可选属性
对象类型还可以指定它们的部分或全部属性是可选的。 为此,请在属性名称后添加 ?
:
Object types can also specify that some or all of their properties are optional. To do this, add a ?
after the property name:
function printName(obj: { first: string; last?: string }) {
// ...
}
// Both OK
printName({ first: "Bob" });
printName({ first: "Alice", last: "Alisson" });
IQN9LdOaKF+A0vBEqbWoVNOTb2o1BlU+C4W2LaR4ALurqPufoFq9KVs279P0ciHtgfTMJF8Evwvz4ciT3djue+PQfaPL0B3vYmpAUx0NwyRaRLHmz2A+Y1Ik000eCZdT3D9BLdePHJNCKZn71oLjO8v8rHfW7agxATCr7roMqXVDBK9a+IoNjjk0FW4y2ipXttbSgHSEleCIuv0gYvC1E9/a3OGfR8A+pVb3n1YR9cWu7fFGz6AL/XeR+XxKp23ZFMH8TMNtfY6RgRu9yHb0GEkKN7T4dABIn9hOOMTDiwiz6eerTmyl7MvcleA8JHgWlrPQO6a6GDgk0wTMeDrvLY1jiKvVs9AULzDReqdiLZCGPmSG1TJfmootOcHg0zhRsprkpVSD+5yiphKwUiInsj4ueJK6I5wonQwIH1BIocfZq7WbLXUROYDgK/vXBqY6GC2d7XvKeEcuu/rXqntgLMw+7FV6X0eFjVIsBqJW2oh2eey4uXhR4KznK/O7bwheJWMBZ4aSPahvp0KB26zgJILvSryCoyXq6RszuNFHTEdxZNBjm19DPy2kKj3S+4dJMidBrlpMR8I8J117iN1P+dNs3A75xBxodvn1ZOVRHZhuOjArsJbf9tHvgHuOeMWpYcspmooU08hONKLIjFbvDteuupyz9E80LjLHCYDTeB0cSz+LZc1E78J7kZX48UwP
function printName(obj: { first: string; last?: string }) {
// Error - might crash if 'obj.last' wasn't provided!
console.log(obj.last.toUpperCase());
if (obj.last !== undefined) {
// OK
console.log(obj.last.toUpperCase());
}
// A safe alternative using modern JavaScript syntax:
console.log(obj.last?.toUpperCase());
}