如何在 TypeScript 中指定可选属性

如何在 TypeScript 中指定可选属性

我们将学习如何在TypeScript中指定选项属性。可选属性的真正含义是,属性可以是未定义的或空的,我们可以在需要时初始化它们。

在实时开发中,可选属性的重要性是非常大的。例如,我们正在从API中获取数据,并对数据进行一些操作。如果你试图在没有得到数据的情况下使用数据,由于数据库服务器被关闭或有任何其他问题,它将引发一个错误。在这种情况下,我们可以让data属性成为可选项,并检查是否有数据可用,然后再继续执行其他代码。

语法

我们可以按照下面的语法来使该属性成为可选项。这里,问号被用来使属性成为可选。在下面的语法中,optionalProp是可选属性。

interface sample {
   prop1: number;
   optionaProp?: string;
}

示例 1

在这个例子中,我们已经创建了一个包含两个可选属性的接口,名为optionalProp和optionalProp2。在对象中,我们没有添加optionalProp2,但我们仍然可以编译TypeScript代码而没有任何错误。

另外,如果我们没有在对象内部定义这些属性,我们就不能通过将对象作为一个引用来访问这些可选属性。

// Creating the sample interface with two optional properties
interface sample {
   prop1: string;
   optionalProp?: number;
   optionlProp2?: boolean;
}

// Creating the object of type sample
let object: sample = {
   prop1: "Hello!",
   optionalProp: 20,
};

// Accessing the object properties one by one
console.log("The value of prop1 is " + object.prop1);
console.log("The value of optionalProp is " + object.optionalProp);

// We can't access the optionalProp2 by taking the object as a refernce, as we haven't defined it.

// console.log("The value of optionalProp2 is " + object.optionalProp2);

编译时,它将生成以下JavaScript代码。

// Creating the object of type sample
var object = {
   prop1: "Hello!",
   optionalProp: 20
};

// Accessing the object properties one by one
console.log("The value of prop1 is " + object.prop1);
console.log("The value of optionalProp is " + object.optionalProp);

// We can't access the optionalProp2 by taking the object as a refernce, as we haven't defined it.

// console.log("The value of optionalProp2 is " + object.optionalProp2);

输出

上述代码将产生以下输出 —

The value of prop1 is Hello!
The value of optionalProp is 20

示例 2

在这个例子中,我们向函数传递了可选参数。我们可以使用’?’操作符来制作函数参数,就像我们把对象属性变成可选一样。

建议在所有必需的参数之后将可选参数传递给函数;否则,在向函数传递参数时,用户可能会得到与参数类型有关的错误。

// Function with three parameters containing the one parameter optional
function printParameters(param1: string, param2: number, param3?: boolean) {
   console.log("The value of the param 1 is " + param1);
   console.log("The value of the param 2 is " + param2);
   console.log("The value of the param 3 is " + param3);
}

// Invoking the function with an optional parameter
printParameters("TutorialsPoint", 10, true);

// Invoking the function without an optional parameter
printParameters("TypeScript", 230);
// Function with three parameters containing the one parameter optional
function printParameters(param1, param2, param3) {
   console.log("The value of the param 1 is " + param1);
   console.log("The value of the param 2 is " + param2);
   console.log("The value of the param 3 is " + param3);
}

// Invoking the function with an optional parameter
printParameters("TutorialsPoint", 10, true);

// Invoking the function without an optional parameter
printParameters("TypeScript", 230);

输出

上述代码将产生以下输出 —

The value of the param 1 is TutorialsPoint
The value of the param 2 is 10
The value of the param 3 is true
The value of the param 1 is TypeScript
The value of the param 2 is 230
The value of the param 3 is undefined

示例 3

在下面的例子中,我们没有在对象内部定义data3属性,因为它是可选的。另外,用户可以了解我们是如何在if条件中使用可选属性的。

使用问号和点运算符来访问任何对象的可选属性,以避免错误,这始终是一个好的做法。

// Creating the apiData interface
interface apiData {
   data1: string,
   data2?: string,
   data3?: string,
}

// Creating the apiDataObject without and data3 optional property
let apiDataObject: apiData = {
   data1: "Data Recived!",
   data2: "Also Recived!"
}

// Here, we have used the question mark to access the optional property
if(apiDataObject?.data2){
   console.log("The data 2 is avialable in the object");
}

if(apiDataObject?.data3){
   console.log("The data 3 is avialable in the object");
}
// Creating the apiDataObject without and data3 optional property
var apiDataObject = {
   data1: "Data Recived!",
   data2: "Also Recived!"
};

// Here, we have used the question mark to access the optional property
if (apiDataObject.data2) {
   console.log("The data 2 is avialable in the object");
}

if (apiDataObject.data3) {
   console.log("The data 3 is avialable in the object");
}

输出

上述代码将产生以下输出 —

The data 2 is avialable in the object

我们在本教程中学习了如何使用TypeScript中的可选属性。我们可以直接使用’?’来使属性可选。另外,我们还可以使函数参数成为可选。此外,我们还学习了如何使用可选属性而不出现任何错误。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程