打字稿中的可选属性类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打字稿中的可选属性类相关的知识,希望对你有一定的参考价值。
我是打字稿的新手,我想知道打字稿中可选属性类的效用是什么?有什么区别:
a?: number;
a: number | undefined;
答案
可选属性:在Typescript中,您可以在接口中声明一个可选的属性。假设您有一个员工界面,中间名是可选的,那么您的代码将如下所示:
interface IEmployee {
firstName: string;
lastName: string;
middleName?: string;
}
当有人使用您的IEmployee接口时,middleName将是可选的,但firstName和lastName是必需的。
let emp: IEmployee = { firstName: "Hohn", lastName: "Doe" }
管道运算符:有时您希望变量可以包含多个类型。如果您将属性声明为数字,则它只能包含数字。管道操作员可以告诉打字稿它可以容纳多种类型。其他情况,当您从函数返回某些东西时,管道运算符非常有用,并且可以根据条件返回多个类型。
希望它会有所帮助
另一答案
Parameters
可选参数和参数类型number | undefined
之间的区别在于您不必提供参数...
function a(a?: number) {
return a;
}
function b(a: number | undefined) {
return a;
}
// Okay
a();
b(1);
// Not okay: Expected 1 arguments, but got 0.
b();
这适用于函数,方法和构造函数。
Strict Null Checks
如果您打开严格的空检查,您将发现任何可选参数或属性将自动获得联合类型。这意味着下面示例中的id
具有number | undefined
类型,即使您只指定了number
:
// With strict null checks, this:
class Example {
id?: number;
}
// ... is the same as this:
class Example {
id?: number | undefined;
}
// ... and this:
class Example {
id: number | undefined;
}
我建议使用第一个示例,因为它保持属性和参数之间的语法一致。
以上是关于打字稿中的可选属性类的主要内容,如果未能解决你的问题,请参考以下文章