Необязательные свойства интерфейса TypeScript и тип возвращаемого значения - PullRequest
0 голосов
/ 27 мая 2020
• 1000 - это : { color: string; area: number } в аргументах функции. Это потому, что они хотят выполнить проверку типов по переменным color и area? и если это так, почему они записывают их в аргументы функции, а не помещают в функцию и выполняют проверку типов, как показано ниже
let color:string;
let area: number;

, не могли бы вы объяснить, что он делает в этом фрагменте кода?

Ответы [ 4 ]

1 голос
/ 27 мая 2020

В машинописном тексте тип функции определяется после столбцов: поэтому типы возвращаемых значений функции могут быть простыми, как

1 - ничего не будет : void .

пример:

function createSquare(config: SquareConfig): void {
// some code 
alert('just not returned code');
}

2- число : число , строка : строка

function createSquare(config: SquareConfig): string {
 // some code 
 return 'some strings ';
}

3- массив чисел : массив или строк: массив

function createSquare(config: SquareConfig) :Array<string> {
// some code 
return ['some strings '];
}

4- (сложный тип) как и объект, который содержит два свойства, как в вашем случае объект.

{цвет: строка; area: number}

Это означает, что функция должна возвращать объект с двумя цветами Porperties, и его значение должно быть строкой, а другое свойство будет иметь имя area со значением, которое принимает только числа.

function createSquare() :{ color: string; area: number } {
    return { color: 'red', area: 5 };
}
console.log(createSquare());

В этом случае интерфейсы помогли нам упростить написание этого кода, как показано ниже.

interface AnyTypeAsReturn {
   color: string; 
   area: number ;
}

function createSquare() :AnyTypeAsReturn {
    return { color: 'red', area: 5 }
}
const square = createSquare();

это упрощает способ написания кода и может быть повторно использован в нашем приложении

1 голос
/ 27 мая 2020

Причина объявления { color: string; area: number } в качестве возвращаемого типа состоит в том, чтобы указать, что функция всегда будет возвращать значения цвета и площади, они больше не являются необязательными.

Когда вы используете эту функцию, вам не придется проверьте, являются ли возвращаемые атрибуты неопределенными или нулевыми.

1 голос
/ 27 мая 2020

Эта часть кода указывает, что эта функция должна ВОЗВРАТИТЬ. Вы возвращаете newSquare, который является объектом, который содержит свойства цвета и области.

0 голосов
/ 27 мая 2020
interface SquareConfig {
  color?: string; // means color value can either be of type string or undefined
  width?: number; // means width value can either be of type number or undefined
}

: { color: string; area: number } в объявлении функции означает, что функция всегда будет иметь возвращаемое значение с этим типом, что означает, что функция createSquare примет аргумент типа SquareConfig, а возвращаемое значение будет объектом с типом { color: string; area: number}

function createSquare(config: SquareConfig): { color: string; area: number } {

   // code....

   // you must return an object with property color of type string
   // and property area of type number otherwise you will get a compiler error

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...