“Związki dyskryminowane z tyturyptem” Kod odpowiedzi

Związki dyskryminowane z tyturyptem

// Object unions with variants of a similiar property, but different
// key names. Need to add a common property to connect them.
interface Circle {
  kind: "circle";
  radius: number;
}
 
interface Square {
  kind: "square";
  sideLength: number;
}
 
type Shape = Circle | Square;

// TypeScript can now narrow out the members
function getArea (shape: Shape) {
  if (shape.kind === "circle") {
    return Math.PI * shape.radius ** 2 // safely accessing shape.radius
  }
}

// Alternatively use a switch statement
switch(shape.kind) {
  case 'circle':
    return Math.PI * shape.radius ** 2
  case 'square':
    return shape.sideLength ** 2
Stupid Scarab

Związki maszynopisowe

type MyBool = true | false;
Puzzled Puffin

Odpowiedzi podobne do “Związki dyskryminowane z tyturyptem”

Pytania podobne do “Związki dyskryminowane z tyturyptem”

Więcej pokrewnych odpowiedzi na “Związki dyskryminowane z tyturyptem” w TypeScript

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu